Sha256: c8e8acab0388c5ebd5d6ea6dacde07ed26fb717b74b334c6c23ecf4c14394b2e
Contents?: true
Size: 1.36 KB
Versions: 22
Compression:
Stored size: 1.36 KB
Contents
module Postmark module MessageHelper extend self def to_postmark(message = {}) message = message.dup %w(to reply_to cc bcc).each do |field| message[field.to_sym] = Array[*message[field.to_sym]].join(", ") end if message[:headers] message[:headers] = headers_to_postmark(message[:headers]) end if message[:attachments] message[:attachments] = attachments_to_postmark(message[:attachments]) end HashHelper.to_postmark(message) end def headers_to_postmark(headers) wrap_in_array(headers).map do |item| HashHelper.to_postmark(item) end end def attachments_to_postmark(attachments) wrap_in_array(attachments).map do |item| if item.is_a?(Hash) HashHelper.to_postmark(item) elsif item.is_a?(File) { "Name" => item.path.split("/")[-1], "Content" => encode_in_base64(IO.read(item.path)), "ContentType" => "application/octet-stream" } end end end def encode_in_base64(data) [data].pack('m') end protected # From ActiveSupport (Array#wrap) def wrap_in_array(object) if object.nil? [] elsif object.respond_to?(:to_ary) object.to_ary || [object] else [object] end end end end
Version data entries
22 entries across 22 versions & 1 rubygems
Version | Path |
---|---|
postmark-1.0.1 | lib/postmark/helpers/message_helper.rb |
postmark-1.0.0 | lib/postmark/helpers/message_helper.rb |