Module: Resque::Mailer::ClassMethods

Defined in:
lib/resque_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



43
44
45
46
47
48
49
# File 'lib/resque_mailer.rb', line 43

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

#current_envObject



35
36
37
38
39
40
41
# File 'lib/resque_mailer.rb', line 35

def current_env
  if defined?(Rails)
    ::Resque::Mailer.current_env || ::Rails.env
  else
    ::Resque::Mailer.current_env
  end
end

#deliver?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/resque_mailer.rb', line 96

def deliver?
  true
end

#excluded_environment?(name) ⇒ Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/resque_mailer.rb', line 92

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

#perform(action, serialized_args) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/resque_mailer.rb', line 51

def perform(action, serialized_args)
  begin
    args = ::Resque::Mailer.argument_serializer.deserialize(serialized_args)
    # symbolize keys so mailer block syntax works
    if args.is_a?(Array)
      args = args.each_with_object([]) do |arg, o|
        o << (arg.is_a?(Hash) ? arg.symbolize_keys : arg)
      end
    end
    message = ::Resque::Mailer.prepare_message(self, action, *args)
    if message.respond_to?(:deliver_now)
      message.deliver_now
    else
      message.deliver
    end
  rescue Exception => ex
    if Mailer.error_handler
      Mailer.error_handler.call(self, message, ex, action, args)
    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



80
81
82
# File 'lib/resque_mailer.rb', line 80

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

#queue=(name) ⇒ Object



84
85
86
# File 'lib/resque_mailer.rb', line 84

def queue=(name)
  @queue = name
end

#resqueObject



88
89
90
# File 'lib/resque_mailer.rb', line 88

def resque
  ::Resque::Mailer.default_queue_target
end