| Class | ActionMessenger::Base |
| In: |
lib/action_messenger/base.rb
|
| Parent: | Object |
| messages | [R] | The messages being built. |
| messenger | [RW] |
The name of the messenger to use.
If set to nil, or if the messenger lookup returns nil, the message won‘t be sent, which may be useful if you need a simple way to temporarily disable messaging. The default messenger is retrieved from the configuration, by looking up the name of the current Rails environment. If running outside of Rails, ‘default’ is used as the default. |
Registers to receive messages. When a new message comes in, it will be sent to the instance method called ‘received’.
# File lib/action_messenger/base.rb, line 33
33: def receives_messages
34: Messenger.resolve(@@default_messenger).add_message_handler do |message|
35: new.received(message)
36: end
37: end
Sets the messenger to use for this class.
# File lib/action_messenger/base.rb, line 27
27: def uses_messenger(messenger)
28: @@default_messenger = messenger
29: end
Initialises default settings for this messenger.
# File lib/action_messenger/base.rb, line 60
60: def initialize_defaults
61: @messenger = @@default_messenger
62: @messages = []
63: @recipients = []
64: @subject = nil
65: @body = {}
66: end
Sets a recipient. Purely for readability if your app never sends the same message to multiple recipients.
# File lib/action_messenger/base.rb, line 85
85: def recipient(recipient)
86: recipients(recipient)
87: end
Sets the recipients of the message being sent.
If multiple recipients are specified, they will generally be sent as multiple messages.
# File lib/action_messenger/base.rb, line 72
72: def recipients(recipients = nil)
73: unless recipients.nil?
74: if recipients.is_a?(Array)
75: @recipients += recipients
76: else
77: @recipients << recipients.to_s
78: end
79: end
80: @recipients
81: end
Sends multiple messages.
# File lib/action_messenger/base.rb, line 106
106: def send_messages(messages = @messages, messenger = @messenger)
107: unless messenger.nil?
108: messenger = Messenger.resolve(messenger)
109: unless messenger.nil?
110: messages.each do |message|
111: messenger.send_message(message)
112: end
113: end
114: end
115: end