class Mailtime::MailLogService
Attributes
field[RW]
loggable[RW]
Public Class Methods
new(mail, loggable_class, options)
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 5 def initialize(mail, loggable_class, options) @mail = mail @loggable_class = loggable_class @loggable = nil @options = options @fields = [] end
Public Instance Methods
attribute_is_loggable?(var)
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 33 def attribute_is_loggable?(var) fields = @options[:fields] || Mailtime.configuration.log_fields || [:to, :cc, :bcc] fields.each do |field| if @mail.send(field).include?(var.send(@options[:attribute])) @fields << field end end end
class_is_loggable?(var)
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 26 def class_is_loggable?(var) if var.class.to_s == @loggable_class @loggable = var end return false end
create_mail_log()
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 42 def create_mail_log @fields.each do |field| ::Mailtime::MailLog.create( :loggable => @loggable, :mailtime_mail_template_id => @mail.mailtime_template.try(:id), :action => @mail.mailer_action, :klass => @mail.mailer_klass, :headers => extract_headers, :scope => extract_scope, :field => field ) end end
execute()
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 13 def execute log end
extract_headers()
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 56 def extract_headers headers = {} @mail.header_fields.map { |k| headers[k.name] = k.value } headers end
extract_scope()
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 62 def extract_scope @mail.action_variables.as_json.except(*Mailtime.configuration.reject_scope_keys) end
log()
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 17 def log return unless loggable? create_mail_log end
loggable?()
click to toggle source
# File lib/mailtime/processor/mail_log_service.rb, line 22 def loggable? @mail.action_variables.detect { |_, var| class_is_loggable?(var) && attribute_is_loggable?(var) } && @fields.any? end