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