class DeliveryStateJp::Base
Public Class Methods
action_url()
click to toggle source
# File lib/delivery_state_jp/base.rb, line 35 def self.action_url fail NotImplementedError end
charset()
click to toggle source
# File lib/delivery_state_jp/base.rb, line 31 def self.charset fail NotImplementedError end
delivery_state(args)
click to toggle source
# 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()
click to toggle source
# File lib/delivery_state_jp/base.rb, line 47 def self.error_messages fail NotImplementedError end
post_params(_number)
click to toggle source
# File lib/delivery_state_jp/base.rb, line 39 def self.post_params(_number) fail NotImplementedError end
response_body(args)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/delivery_state_jp/base.rb, line 43 def self.xpath(_index) fail NotImplementedError end