Module: AwesomeUsps::Tracking
- Included in:
- USPS
- Defined in:
- lib/awesome_usps/tracking.rb
Instance Method Summary collapse
- #canned_tracking ⇒ Object
-
#parse_tracking(xml) ⇒ Object
Parses the XML into an array broken up by each event.
-
#track(tracking_number) ⇒ Object
Takes your package tracking number and returns information for the USPS web API.
-
#xml_for_tracking(tracking_number) ⇒ Object
XML from a straight string.
Instance Method Details
#canned_tracking ⇒ Object
9 10 11 12 13 |
# File 'lib/awesome_usps/tracking.rb', line 9 def canned_tracking tracking_number = "EJ958083578US" request = xml_for_tracking(tracking_number) gateway_commit(:tracking, 'TrackV2', request, :test) end |
#parse_tracking(xml) ⇒ Object
Parses the XML into an array broken up by each event. Example of returned array
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/awesome_usps/tracking.rb', line 26 def parse_tracking(xml) event_list = [] parse = Hpricot.parse(xml)/:trackdetail if parse == [] RAILS_DEFAULT_LOGGER.info "#{xml}" return (Hpricot.parse(xml)/:description).inner_html else parse.each do |detail| h = {} detail.children.each { |elem| h[elem.name.to_sym] = elem.inner_text unless elem.inner_text.blank? } event_list << h end end event_list end |
#track(tracking_number) ⇒ Object
Takes your package tracking number and returns information for the USPS web API
4 5 6 7 |
# File 'lib/awesome_usps/tracking.rb', line 4 def track(tracking_number) request = xml_for_tracking(tracking_number) gateway_commit(:tracking, 'TrackV2', request, :live) end |
#xml_for_tracking(tracking_number) ⇒ Object
XML from a straight string. “<TrackFieldRequest USERID=‘#@username’><TrackID ID=‘#@tracking_number’></TrackID></TrackFieldRequest>”
17 18 19 20 21 22 |
# File 'lib/awesome_usps/tracking.rb', line 17 def xml_for_tracking(tracking_number) xm = Builder::XmlMarkup.new xm.TrackFieldRequest("USERID" =>"#{@username}") do xm.TrackID("ID"=> "#{tracking_number}") end end |