Class: DeliveryStateJp::Base
- Inherits:
-
Object
- Object
- DeliveryStateJp::Base
show all
- Defined in:
- lib/delivery_state_jp/base.rb
Class Method Summary
collapse
Class Method Details
.action_url ⇒ Object
35
36
37
|
# File 'lib/delivery_state_jp/base.rb', line 35
def self.action_url
fail NotImplementedError
end
|
.charset ⇒ Object
31
32
33
|
# File 'lib/delivery_state_jp/base.rb', line 31
def self.charset
fail NotImplementedError
end
|
.delivery_state(args) ⇒ Object
3
4
5
6
7
8
9
10
11
12
|
# File 'lib/delivery_state_jp/base.rb', line 3
def self.delivery_state(args)
doc = Nokogiri::HTML.parse(response_body(args), nil, charset)
index = 1
statuses = []
while doc.xpath(xpath(index)).text.strip != ''
statuses << doc.xpath(xpath(index)).text.strip
index += 1
end
statuses.last
end
|
.error_messages ⇒ Object
47
48
49
|
# File 'lib/delivery_state_jp/base.rb', line 47
def self.error_messages
fail NotImplementedError
end
|
.post_params(_number) ⇒ Object
39
40
41
|
# File 'lib/delivery_state_jp/base.rb', line 39
def self.post_params(_number)
fail NotImplementedError
end
|
.response_body(args) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/delivery_state_jp/base.rb', line 19
def self.response_body(args)
number = args.fetch(:number)
uri = URI.parse(action_url)
request = Net::HTTP::Post.new(uri)
request.set_form_data(post_params(number))
req_options = {use_ssl: uri.scheme == 'https'}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
response.body
end
|
.tracking_error_message(args) ⇒ Object
14
15
16
17
|
# File 'lib/delivery_state_jp/base.rb', line 14
def self.tracking_error_message(args)
doc = Nokogiri::HTML.parse(response_body(args), nil, charset)
error_messages.map { |error_message| (doc.search "[text() *= '#{error_message}']").last }.compact.map(&:text).map(&:strip).join('、')
end
|
.xpath(_index) ⇒ Object
43
44
45
|
# File 'lib/delivery_state_jp/base.rb', line 43
def self.xpath(_index)
fail NotImplementedError
end
|