class Reelagram::Mail::Parsers::ShippingParser
Attributes
debug[R]
doc[R]
Public Class Methods
new()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 9 def initialize @debug = Reelagram::Mail.debug? end
Public Instance Methods
carrier()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 19 def carrier return "Unavailable" unless shipping_info_row @row.children[0].text end
order_number()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 40 def order_number return unless table = doc.css("table")[2] table.css("tr") .children.css("td") .children .text .gsub(/\\n+/, " ") .scan(/\w*/) .reject(&:empty?) .last end
reset!()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 52 def reset! @shipping_info_table, @row = nil, nil end
run(string)
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 13 def run(string) @doc = Nokogiri::HTML(string) log_parsed_data if debug self end
tracking_link()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 29 def tracking_link return unless shipping_info_row begin tracking_link_container.css("a") .attr("href") .value rescue nil end end
tracking_number()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 24 def tracking_number return "Unavailable" unless shipping_info_row tracking_link_container.text end
Private Instance Methods
log(message)
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 81 def log(message) STDOUT.puts(message) end
log_parsed_data()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 72 def log_parsed_data log("-------------------------------------") log("Order Number: #{order_number}") log("Carrier: #{carrier}") log("Tracking Number: #{tracking_number}") log("Tracking Link: #{tracking_link}") log("-------------------------------------") end
shipping_info_row()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 66 def shipping_info_row if shipping_info_table @row ||= @shipping_info_table.css("tr")[-1] end end
shipping_info_table()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 62 def shipping_info_table @shipping_info_table ||= doc.css("table")[-2] end
tracking_link_container()
click to toggle source
# File lib/reelagram/mail/parsers/shipping_parser.rb, line 58 def tracking_link_container @row.children[2].css("a") end