Module: Backburner::Mailer::ClassMethods

Defined in:
lib/backburner_mailer.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/backburner_mailer.rb', line 37

def method_missing(method_name, *args)
  if action_methods.include?(method_name.to_s)
    MessageDecoy.new(self, method_name, *args)
  else
    super
  end
end

Instance Method Details

#backburnerObject



70
71
72
# File 'lib/backburner_mailer.rb', line 70

def backburner
  ::Backburner::Mailer.default_queue_target
end

#current_envObject



27
28
29
30
31
32
33
34
35
# File 'lib/backburner_mailer.rb', line 27

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?Boolean

Returns:

  • (Boolean)


78
79
80
# File 'lib/backburner_mailer.rb', line 78

def deliver?
  true
end

#excluded_environment?(name) ⇒ Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/backburner_mailer.rb', line 74

def excluded_environment?(name)
  ::Backburner::Mailer.excluded_environments && ::Backburner::Mailer.excluded_environments.include?(name.try(:to_sym))
end

#perform(action, *args) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/backburner_mailer.rb', line 45

def perform(action, *args)
  begin
    message = self.send(:new, action, *args).message
    message.deliver
  rescue Exception => ex
    if Mailer.error_handler
      Mailer.error_handler.call(self, message, ex)
    else
      if logger
        logger.error "Unable to deliver email [#{action}]: #{ex}"
        logger.error ex.backtrace.join("\n\t")
      end
      raise ex
    end
  end
end

#queueObject



62
63
64
# File 'lib/backburner_mailer.rb', line 62

def queue
  @queue || ::Backburner::Mailer.default_queue_name
end

#queue=(name) ⇒ Object



66
67
68
# File 'lib/backburner_mailer.rb', line 66

def queue=(name)
  @queue = name
end