Sha256: b78190c36ebc24a19b60671478895eaea102a6e42a0e869d95a91a510dad4382
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
module Trackerific module Parsers class USPS < Parsers::Base protected 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 def summary tracking_info['TrackSummary'] end def events tracking_info.fetch('TrackDetail', []).map do |e| Trackerific::Event.new(date(e), description(e), location(e)) end end private def tracking_info @response['TrackResponse']['TrackInfo'] end def date(event) d = event.split(" ") DateTime.parse(d[0..3].join(" ")) end def description(event) d = event.split(" ") d[4..d.length-4].join(" ") end def location(event) d = event.gsub(".", "").split(" ") city, state, zip = d.last(3) "#{city}, #{state} #{zip}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
trackerific-0.7.2 | lib/trackerific/parsers/usps.rb |