class Ppl::Adapter::EmailScraper::Mail
Attributes
storage_adapter[W]
Public Instance Methods
scrape_contacts(message)
click to toggle source
# File lib/ppl/adapter/email_scraper/mail.rb, line 7 def scrape_contacts(message) email = Mail.new(message) contacts = [] sender = scrape_sender(email) unless sender.nil? contacts << sender end contacts end
Private Instance Methods
generate_contact_id(contact)
click to toggle source
# File lib/ppl/adapter/email_scraper/mail.rb, line 35 def generate_contact_id(contact) if !contact.name.full.nil? generate_contact_id_from_name(contact.name) elsif !contact.email_addresses.empty? contact.email_addresses.first.address end end
generate_contact_id_from_name(name)
click to toggle source
# File lib/ppl/adapter/email_scraper/mail.rb, line 43 def generate_contact_id_from_name(name) name = name.full.downcase.tr(" ", "_") base = name suffix = 0 until @storage_adapter.load_contact(name).nil? suffix += 1 name = "#{base}_#{suffix}" end name end
scrape_sender(email)
click to toggle source
# File lib/ppl/adapter/email_scraper/mail.rb, line 21 def scrape_sender(email) from = email[:from] unless from.nil? sender = Ppl::Entity::Contact.new sender.name = Ppl::Entity::Name.new display_name = from.address_list.addresses.first.display_name sender.name.full = Mail::Encodings.value_decode(display_name) unless display_name.nil? sender.email_addresses << Ppl::Entity::EmailAddress.new(from.address_list.addresses.first.address) sender.id = generate_contact_id(sender) sender.name.full = sender.id if display_name.nil? sender end end