class Mail2cb::MessageIdHandler

Public Class Methods

new(email) click to toggle source
# File lib/mail2cb/message_id_handler.rb, line 4
def initialize(email)
  @email = email

  @content = EmailContent.new(@email)
end

Public Instance Methods

from_body() click to toggle source
# File lib/mail2cb/message_id_handler.rb, line 37
def from_body
  find_in_content(@content.html) || find_in_content(@content.text)
end
from_headers() click to toggle source
# File lib/mail2cb/message_id_handler.rb, line 31
def from_headers
  references.reverse.detect{|id| find_in_content(id) }
end
from_subject() click to toggle source
# File lib/mail2cb/message_id_handler.rb, line 34
def from_subject
  find_in_content(@email.subject)
end
hash() click to toggle source
# File lib/mail2cb/message_id_handler.rb, line 14
def hash
  if message_id
    match = /([a-z]*?)\.([a-z0-9]*?)\.([a-z0-9]*?)@mail.caseblocks.com/.match(message_id)
    if match
      if match[1] == "conversation"
        {"conversation_id" => match[2]}
      elsif match[1] == "case"
        {"case_id" => match[2]}
      else
        {match[1] => match[2]}
      end
    end
  else
    {}
  end
end
message_id() click to toggle source
# File lib/mail2cb/message_id_handler.rb, line 10
def message_id
  from_headers || from_subject || from_body
end
references() click to toggle source
# File lib/mail2cb/message_id_handler.rb, line 40
def references
  refs = @email.header["References"]
  begin
    if refs && refs.field.errors.empty?
      return refs.field.element.message_ids
    end
  rescue
    ap @email.header["References"]
  end
  []
end

Private Instance Methods

find_in_content(content) click to toggle source
# File lib/mail2cb/message_id_handler.rb, line 53
def find_in_content(content)
  match = /([a-z]*?)\.([a-z0-9]*?)\.([a-z0-9]*?)@mail.caseblocks.com/.match(content)
  if match
    match[0]
  else
    false
  end
end