class Trackerific::Parsers::USPS
Protected Instance Methods
events()
click to toggle source
# File lib/trackerific/parsers/usps.rb, line 20 def events tracking_info.fetch('TrackDetail', []).map do |e| Trackerific::Event.new(date(e), description(e), location(e)) end end
response_error()
click to toggle source
# File lib/trackerific/parsers/usps.rb, line 4 def response_error @response_error ||= if @response.code != 200 Trackerific::Error.new("HTTP returned status #{@response.code}") elsif @response['Error'] Trackerific::Error.new(@response['Error']['Description']) elsif @response['TrackResponse'].nil? && @response['CityStateLookupResponse'].nil? Trackerific::Error.new("Invalid response from server.") else false end end
summary()
click to toggle source
# File lib/trackerific/parsers/usps.rb, line 16 def summary tracking_info['TrackSummary'] end
Private Instance Methods
date(event)
click to toggle source
# File lib/trackerific/parsers/usps.rb, line 32 def date(event) d = event.split(" ") DateTime.parse(d[0..3].join(" ")) end
description(event)
click to toggle source
# File lib/trackerific/parsers/usps.rb, line 37 def description(event) d = event.split(" ") d[4..d.length-4].join(" ") end
location(event)
click to toggle source
# File lib/trackerific/parsers/usps.rb, line 42 def location(event) d = event.gsub(".", "").split(" ") city, state, zip = d.last(3) "#{city}, #{state} #{zip}" end
tracking_info()
click to toggle source
# File lib/trackerific/parsers/usps.rb, line 28 def tracking_info @response['TrackResponse']['TrackInfo'] end