class Postmark::MailMessageConverter
Public Class Methods
new(message)
click to toggle source
# File lib/postmark/mail_message_converter.rb, line 5 def initialize(message) @message = message end
Public Instance Methods
run()
click to toggle source
# File lib/postmark/mail_message_converter.rb, line 9 def run delete_blank_fields(pick_fields(convert, @message.templated?)) end
Private Instance Methods
cast_to_bool(val)
click to toggle source
# File lib/postmark/mail_message_converter.rb, line 60 def cast_to_bool(val) if val.is_a?(TrueClass) || val.is_a?(FalseClass) val elsif val.is_a?(String) && val.downcase == "true" true else false end end
content_part()
click to toggle source
# File lib/postmark/mail_message_converter.rb, line 52 def content_part { 'Attachments' => @message.export_attachments, 'HtmlBody' => @message.body_html, 'TextBody' => @message.body_text } end
convert()
click to toggle source
# File lib/postmark/mail_message_converter.rb, line 15 def convert headers_part.merge(content_part) end
delete_blank_fields(message_hash)
click to toggle source
# File lib/postmark/mail_message_converter.rb, line 19 def delete_blank_fields(message_hash) message_hash.delete_if { |k, v| v.nil? || (v.respond_to?(:empty?) && v.empty?) } end
headers_part()
click to toggle source
# File lib/postmark/mail_message_converter.rb, line 23 def headers_part { 'From' => @message['from'].to_s, 'To' => @message['to'].to_s, 'ReplyTo' => @message['reply_to'].to_s, 'Cc' => @message['cc'].to_s, 'Bcc' => @message['bcc'].to_s, 'Subject' => @message.subject, 'Headers' => @message.export_headers, 'Tag' => @message.tag.to_s, 'TrackOpens' => (cast_to_bool(@message.track_opens) unless @message.track_opens.empty?), 'TrackLinks' => (::Postmark::Inflector.to_postmark(@message.track_links) unless @message.track_links.empty?), 'Metadata' => @message.metadata, 'TemplateAlias' => @message.template_alias, 'TemplateModel' => @message.template_model, 'MessageStream' => @message.message_stream } end
pick_fields(message_hash, templated = false)
click to toggle source
# File lib/postmark/mail_message_converter.rb, line 42 def pick_fields(message_hash, templated = false) fields = if templated %w(Subject HtmlBody TextBody) else %w(TemplateAlias TemplateModel) end fields.each { |key| message_hash.delete(key) } message_hash end