Class: Qu::Mailer::ClassMethods::MessageDecoy

Inherits:
Object
  • Object
show all
Defined in:
lib/qu_mailer.rb

Instance Method Summary collapse

Constructor Details

#initialize(mailer_class, method_name, *args) ⇒ MessageDecoy

Returns a new instance of MessageDecoy.



56
57
58
59
60
# File 'lib/qu_mailer.rb', line 56

def initialize(mailer_class, method_name, *args)
  @mailer_class = mailer_class
  @method_name = method_name
  *@args = *args
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args) ⇒ Object



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

def method_missing(method_name, *args)
  actual_message.send(method_name, *args)
end

Instance Method Details

#actual_messageObject



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

def actual_message
  @actual_message ||= @mailer_class.send(:new, @method_name, *@args).message
end

#deliverObject



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

def deliver
  qu.enqueue(@mailer_class, @method_name, *@args)
end

#deliver!Object



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

def deliver!
  actual_message.deliver!
end

#quObject



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

def qu
  ::Qu::Mailer.default_queue_target
end