Class: Reelagram::Mail::Parsers::ShippingParser

Inherits:
Object
  • Object
show all
Defined in:
lib/reelagram/mail/parsers/shipping_parser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#docObject (readonly)

Returns the value of attribute doc.



7
8
9
# File 'lib/reelagram/mail/parsers/shipping_parser.rb', line 7

def doc
  @doc
end

Instance Method Details

#carrierObject



14
15
16
17
18
19
20
# File 'lib/reelagram/mail/parsers/shipping_parser.rb', line 14

def carrier
  if shipping_info_row
    @row.children[1].text
  else
    "Unavailable"
  end
end

#order_numberObject



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/reelagram/mail/parsers/shipping_parser.rb', line 36

def order_number
  table = doc.css("table")[2]
  if table
    table.css("tr")
      .children.css("td")
      .children
      .text
      .gsub(/\\n+/, " ")
      .scan(/\w*/)
      .reject(&:empty?)
      .last
  end
end

#reset!Object



50
51
52
# File 'lib/reelagram/mail/parsers/shipping_parser.rb', line 50

def reset!
  @shipping_info_table, @row = nil, nil
end

#run(string) ⇒ Object



9
10
11
12
# File 'lib/reelagram/mail/parsers/shipping_parser.rb', line 9

def run(string)
  @doc = Nokogiri::HTML(string)
  self
end


30
31
32
33
34
# File 'lib/reelagram/mail/parsers/shipping_parser.rb', line 30

def tracking_link
  if shipping_info_row
    @row.children[3].css("a").attr("href").value
  end
end

#tracking_numberObject



22
23
24
25
26
27
28
# File 'lib/reelagram/mail/parsers/shipping_parser.rb', line 22

def tracking_number
  if shipping_info_row
    @row.children[3].css("a").text
  else
    "Unavailable"
  end
end