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_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