class RoyalMailScraper::Tracker::Response
Constants
- DETAILS_PATH
- ERROR_PATH
- TIME_FORMAT
Attributes
html[R]
Public Class Methods
new(body)
click to toggle source
# File lib/royal_mail_scraper/tracker/response.rb, line 12 def initialize(body) @html = Nokogiri::HTML(body) end
Public Instance Methods
tracker()
click to toggle source
# File lib/royal_mail_scraper/tracker/response.rb, line 16 def tracker Tracker.new(tracking_number, details.reverse) end
Private Instance Methods
details()
click to toggle source
# File lib/royal_mail_scraper/tracker/response.rb, line 27 def details html.xpath(DETAILS_PATH).map do |tr| date, time, message, location = tr.css('td').map(&:content).map(&:strip) time = '00:00' unless time =~ /\A\d+:\d+\z/ datetime = DateTime.strptime([date, time].join(' '), TIME_FORMAT) rescue DateTime.new Tracker::Detail.new(datetime, message, location) end end
tracking_number()
click to toggle source
# File lib/royal_mail_scraper/tracker/response.rb, line 22 def tracking_number el = @html.at('input[@name="tracking_number"]') el ? el.attr(:value).to_s.strip : nil end