class Logged::LogSubscriber::ActionMailer
Log subscriber for ActionMailer
events
Public Instance Methods
deliver(event)
click to toggle source
An email was delivered.
# File lib/logged/log_subscriber/action_mailer.rb, line 12 def deliver(event) return if ignore?(event, :debug) process_duration = Thread.current[:logged_action_mailer_process_duration] || 0.0 data = { event: event.name, duration: (process_duration + event.duration.to_f).round(2) } data.merge!(extract_mail_deliver(event.payload)) Thread.current[:logged_action_mailer_process_duration] = nil debug(event, data) end
process(event)
click to toggle source
An email was generated.
# File lib/logged/log_subscriber/action_mailer.rb, line 43 def process(event) payload = event.payload Thread.current[:logged_action_mailer_process_mailer] = payload[:mailer] Thread.current[:logged_action_mailer_process_action] = payload[:action] Thread.current[:logged_action_mailer_process_duration] = event.duration.to_f end
receive(event)
click to toggle source
An email was received.
# File lib/logged/log_subscriber/action_mailer.rb, line 30 def receive(event) return unless logger.debug? return if ignore?(event) data = { event: event.name, duration: event.duration.to_f.round(2) } debug(event, data) end
Private Instance Methods
extract_mail_deliver(payload)
click to toggle source
# File lib/logged/log_subscriber/action_mailer.rb, line 53 def extract_mail_deliver(payload) data = mail_deliver_data(payload) Thread.current[:logged_action_mailer_process_mailer] = nil Thread.current[:logged_action_mailer_process_action] = nil data end
mail_deliver_data(payload)
click to toggle source
# File lib/logged/log_subscriber/action_mailer.rb, line 62 def mail_deliver_data(payload) { mailer: mail_deliver_data_thread_fallback(payload, :mailer), action: mail_deliver_data_thread_fallback(payload, :action), from: mail_deliver_data_array(payload, :from), to: mail_deliver_data_array(payload, :to), bcc: mail_deliver_data_array(payload, :bcc) } end
mail_deliver_data_array(payload, key)
click to toggle source
# File lib/logged/log_subscriber/action_mailer.rb, line 76 def mail_deliver_data_array(payload, key) Array(payload[key]).join(', ') end
mail_deliver_data_thread_fallback(payload, key)
click to toggle source
# File lib/logged/log_subscriber/action_mailer.rb, line 72 def mail_deliver_data_thread_fallback(payload, key) payload[key] || Thread.current["logged_action_mailer_process_#{key}".to_sym] end