class ActionMessage::MessageDelivery

Attributes

action[R]
args[R]
message_class[R]

Public Class Methods

new(message_class, action, *args) click to toggle source
# File lib/action_message/message_delivery.rb, line 5
def initialize(message_class, action, *args)
  @message_class, @action, @args = message_class, action, args
end

Public Instance Methods

deliver_later(options = {}) click to toggle source
# File lib/action_message/message_delivery.rb, line 13
def deliver_later(options = {})
  enqueue_delivery :deliver_now, options
end
deliver_now() click to toggle source
# File lib/action_message/message_delivery.rb, line 9
def deliver_now
  processed_sms.send(action, *args).deliver
end

Protected Instance Methods

enqueue_delivery(delivery_method, options={}) click to toggle source
# File lib/action_message/message_delivery.rb, line 25
def enqueue_delivery(delivery_method, options={})
  args = @message_class.name, @action.to_s, delivery_method.to_s, *@args
  ::ActionMessage::DeliveryJob.set(options).perform_later(*args)
end
processed_sms() click to toggle source
# File lib/action_message/message_delivery.rb, line 18
def processed_sms
  @processed_sms ||= @message_class.new.tap do |message|
    message.template_path = @message_class.name.underscore
    message.template_name = action.to_s
  end
end