class ActionMessenger::MessageDelivery

Attributes

args[R]
messenger_class[R]
method_name[R]

Public Class Methods

new(messenger_class, method_name, *args) click to toggle source
# File lib/action_messenger/message_delivery.rb, line 8
def initialize(messenger_class, method_name, *args)
  @messenger_class = messenger_class
  @method_name = method_name
  @args = args
end

Public Instance Methods

deliver_later!() click to toggle source

send a message asynchronously

# File lib/action_messenger/message_delivery.rb, line 28
def deliver_later!
  ActionMessenger::MessageDeliveryJob.perform_later(self.class.name, 'deliver_now!', messenger_class.to_s, method_name.to_s, *args)
end
deliver_now!() click to toggle source

send a message now

# File lib/action_messenger/message_delivery.rb, line 15
def deliver_now!
  messenger.handle_exceptions do
    ActiveSupport::Notifications.instrument('deliver_now!.action_messenger', method_name: method_name, args: args) do
      if args.present?
        messenger.public_send(method_name, *args)
      else
        messenger.public_send(method_name)
      end
    end
  end
end
messenger() click to toggle source
# File lib/action_messenger/message_delivery.rb, line 32
def messenger
  @messenger ||= messenger_class.new
end