module DMCourier::Services::MessageHelper
Public Instance Methods
attachments(filter = {})
click to toggle source
# File lib/dm_courier/message_helper.rb, line 71 def attachments(filter = {}) Enumerator.new do |y| attachments = mail.attachments attachments = if filter[:inline] attachments.select(&:inline?) else attachments.reject(&:inline?) end if filter.key?(:inline) attachments.map do |attachment| y.yield(name: attachment.inline? ? attachment.cid : attachment.filename, type: attachment.mime_type, content: Base64.encode64(attachment.body.decoded), inline: attachment.inline?) end end end
attachments?(filter = {})
click to toggle source
# File lib/dm_courier/message_helper.rb, line 89 def attachments?(filter = {}) found = mail.attachments && !mail.attachments.empty? if found && filter.key?(:inline) found &&= mail.attachments.any? { |a| a.inline? == filter[:inline] } end found end
extract_params(params)
click to toggle source
# File lib/dm_courier/message_helper.rb, line 7 def extract_params(params) json = {} json .merge!(Hash[ params[:nil_true_false].map { |name, key| [name.to_sym, nil_true_false?(key.to_sym)] } ]) if params.key?(:nil_true_false) json .merge!(Hash[ params[:string].map { |name, key| [name.to_sym, return_string_value(key.to_sym)] } ]) if params.key?(:string) json end
fallback_options(field)
click to toggle source
# File lib/dm_courier/message_helper.rb, line 67 def fallback_options(field) mail[field] || options[field] end
from()
click to toggle source
# File lib/dm_courier/message_helper.rb, line 35 def from Mail::Address.new(from_address) end
from_address()
click to toggle source
# File lib/dm_courier/message_helper.rb, line 39 def from_address mail[:from] ? mail[:from].formatted.first : options[:from] end
from_email()
click to toggle source
# File lib/dm_courier/message_helper.rb, line 23 def from_email from.address if from_address end
from_name()
click to toggle source
# File lib/dm_courier/message_helper.rb, line 31 def from_name from.display_name if from_address end
html_part()
click to toggle source
# File lib/dm_courier/message_helper.rb, line 48 def html_part mail.html_part ? mail.html_part.body.decoded : mail.body.decoded end
metadata()
click to toggle source
# File lib/dm_courier/message_helper.rb, line 27 def metadata JSON.parse(mail[:metadata].value) if mail[:metadata] end
nil_true_false?(field)
click to toggle source
# File lib/dm_courier/message_helper.rb, line 61 def nil_true_false?(field) value = fallback_options(field) return nil if value.nil? value.to_s == "true" ? true : false end
return_string_value(field)
click to toggle source
# File lib/dm_courier/message_helper.rb, line 56 def return_string_value(field) value = fallback_options(field) value ? value.to_s : nil end
subject()
click to toggle source
# File lib/dm_courier/message_helper.rb, line 52 def subject mail.subject end
text_part()
click to toggle source
# File lib/dm_courier/message_helper.rb, line 43 def text_part return mail.text_part.body.decoded if mail.multipart? && mail.text_part nil end