class Trackerific::Parsers::UPS
Protected Instance Methods
events()
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 20 def events activity.map do |a| date = parse_ups_date_time(a['Date'], a['Time']) Trackerific::Event.new(date, description(a), location(a)) end end
response_error()
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 4 def response_error @response_error ||= if @response.code != 200 Trackerific::Error.new("HTTP returned status #{@response.code}") elsif response_status_code == :error Trackerific::Error.new(error_response) elsif response_status_code == :success false else Trackerific::Error.new("Unknown status code from server.") end end
summary()
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 16 def summary description(activity.first) end
Private Instance Methods
activity()
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 56 def activity @activity ||= begin a = track_response['Shipment']['Package']['Activity'] a.is_a?(Array) ? a : [a] end end
description(a)
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 48 def description(a) a['Status']['StatusType']['Description'] end
error_response()
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 39 def error_response track_response['Response']['Error']['ErrorDescription'] end
location(a)
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 52 def location(a) a['ActivityLocation']['Address'].map {|k,v| v}.join(" ") end
parse_ups_date_time(date, time)
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 43 def parse_ups_date_time(date, time) hours, minutes, seconds = time.scan(/.{2}/) DateTime.parse("#{Date.parse(date)} #{hours}:#{minutes}:#{seconds}") end
response_status_code()
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 33 def response_status_code { "0" => :error, "1" => :success }[track_response['Response']['ResponseStatusCode']] end
track_response()
click to toggle source
# File lib/trackerific/parsers/ups.rb, line 29 def track_response @response['TrackResponse'] end