module EmailSpectacular::CapybaraAdaptor

Module for parsing email bodies

@author Aleck Greenham

Public Instance Methods

parsed_email_parts(email) click to toggle source
# File lib/email_spectacular/adaptors/capybara_adaptor.rb, line 10
def parsed_email_parts(email)
  email_parts_as_hash(email) do |email_part|
    parse(email_part)
  end
end
raw_email_parts(email) click to toggle source
# File lib/email_spectacular/adaptors/capybara_adaptor.rb, line 16
def raw_email_parts(email)
  email_parts_as_hash(email)
end

Private Instance Methods

content_type_key(target) click to toggle source
# File lib/email_spectacular/adaptors/capybara_adaptor.rb, line 38
def content_type_key(target)
  target.content_type.split(';').first
end
email_parts_as_hash(email) { |decoded| ... } click to toggle source
# File lib/email_spectacular/adaptors/capybara_adaptor.rb, line 22
def email_parts_as_hash(email)
  if email.parts.any?
    email.parts.each_with_object({}) do |email_part, memo|
      decoded = email_part.body.decoded
      memo[content_type_key(email_part)] = block_given? ? yield(decoded) : decoded
    end
  else
    encoded = email.body.encoded
    { content_type_key(email) => block_given? ? yield(encoded) : encoded }
  end
end
parse(target) click to toggle source
# File lib/email_spectacular/adaptors/capybara_adaptor.rb, line 34
def parse(target)
  Capybara::Node::Simple.new(target)
end