class Griddler::Cloudmailin::Adapter
Constants
- KEY_LIST
Attributes
params[R]
Public Class Methods
new(params)
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 23 def initialize(params) @params = params end
normalize_params(params)
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 4 def self.normalize_params(params) adapter = new(params) adapter.normalize_params end
Public Instance Methods
legacy?()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 15 def legacy? @legacy ||= headers.key? :From end
normalize_params()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 9 def normalize_params normalized_params = base_params normalized_params[:bcc] = bcc unless bcc.empty? normalized_params end
Private Instance Methods
base_params()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 55 def base_params # rubocop:disable Metrics/AbcSize, Metrics/MethodLength @base_params ||= { to: tos, cc: ccs, from: headers[header_keys[:from]], date: headers[header_keys[:date]].try(:to_datetime), subject: headers[header_keys[:subject]], text: params[:plain], html: params[:html], attachments: params.fetch(:attachments) { {} }.values, headers: headers } end
bcc()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 47 def bcc @bcc ||= header_emails.include?(envelope_to) ? [] : [envelope_to] end
ccs()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 31 def ccs @ccs ||= recipients(header_keys[:cc]) end
envelope_to()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 39 def envelope_to @envelope_to ||= params[:envelope][:to] end
header_emails()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 43 def header_emails @header_emails ||= (tos | ccs).map { |addressee| Griddler::EmailParser.parse_address(addressee)[:email] } end
header_keys()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 69 def header_keys @header_keys ||= Hash[legacy? ? KEY_LIST.map { |s| [s, s.capitalize] } : KEY_LIST.map { |s| [s, s] }] end
headers()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 51 def headers @headers ||= params[:headers] end
recipients(field)
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 27 def recipients(field) headers[field].to_s.split(',').map(&:strip) end
tos()
click to toggle source
# File lib/griddler/cloudmailin/adapter.rb, line 35 def tos @tos ||= recipients(header_keys[:to]) end