class Backburner::Mailer::MessageDecoy

Public Class Methods

new(mailer_class, method_name, *args) click to toggle source
# File lib/backburner_mailer.rb, line 86
def initialize(mailer_class, method_name, *args)
  @mailer_class = mailer_class
  @method_name = method_name
  *@args = *args
end

Public Instance Methods

actual_message() click to toggle source
# File lib/backburner_mailer.rb, line 114
def actual_message
  @actual_message ||= @mailer_class.send(:new, @method_name, *@args).message
end
backburner() click to toggle source
# File lib/backburner_mailer.rb, line 92
def backburner
  ::Backburner::Mailer.default_queue_target
end
current_env() click to toggle source
# File lib/backburner_mailer.rb, line 96
def current_env
  if defined?(Rails)
    ::Backburner::Mailer.current_env || ::Rails.env
  elsif defined?(Padrino)
    ::Backburner::Mailer.current_env || ::Padrino.env
  else
    ::Backburner::Mailer.current_env
  end
end
deliver(opts = {}) click to toggle source
# File lib/backburner_mailer.rb, line 118
def deliver(opts = {})
  return deliver! if environment_excluded?

  if @mailer_class.deliver?
    begin
      backburner.enqueue(@mailer_class, [@method_name].concat(@args), opts)
    rescue Errno::ECONNREFUSED
      deliver!
    end
  end
end
deliver!() click to toggle source
# File lib/backburner_mailer.rb, line 130
def deliver!
  actual_message.deliver
end
environment_excluded?() click to toggle source
# File lib/backburner_mailer.rb, line 106
def environment_excluded?
  !ActionMailer::Base.perform_deliveries || excluded_environment?(current_env)
end
excluded_environment?(name) click to toggle source
# File lib/backburner_mailer.rb, line 110
def excluded_environment?(name)
  ::Backburner::Mailer.excluded_environments && ::Backburner::Mailer.excluded_environments.include?(name.to_sym)
end
method_missing(method_name, *args) click to toggle source
# File lib/backburner_mailer.rb, line 134
def method_missing(method_name, *args)
  actual_message.send(method_name, *args)
end