Module: Griddler::EmailParser
- Defined in:
- lib/griddler/email_parser.rb
Class Method Summary collapse
- .extract_headers(raw_headers) ⇒ Object
- .extract_reply_body(body) ⇒ Object
- .parse_address(full_address) ⇒ Object
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 |