Module: Griddler::EmailParser

Defined in:
lib/griddler/email_parser.rb

Class Method Summary collapse

Class Method Details

.extract_headers(raw_headers) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/griddler/email_parser.rb', line 42

def self.extract_headers(raw_headers)
  if raw_headers.is_a?(Hash)
    raw_headers
  else
    header_fields = Mail::Header.new(raw_headers).fields

    header_fields.inject({}) do |header_hash, header_field|
      header_hash[header_field.name.to_s] = header_field.value.to_s
      header_hash
    end
  end
end

.extract_reply_body(body) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/griddler/email_parser.rb', line 27

def self.extract_reply_body(body)
  if body.blank?
    ""
  else
    remove_reply_portion(body)
      .split(/[\r]*\n/)
      .reject do |line|
        line =~ /^[[:space:]]+>/ ||
          line =~ /^[[:space:]]*Sent from my /
      end.
      join("\n").
      strip
  end
end

.parse_address(full_address) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/griddler/email_parser.rb', line 14

def self.parse_address(full_address)
  email_address = extract_email_address(full_address)
  name = extract_name(full_address)
  token, host = split_address(email_address)
  {
    token: token,
    host: host,
    email: email_address,
    full: full_address,
    name: name,
  }
end