Class ActionMessenger::Base
In: lib/action_messenger/base.rb
Parent: Object

Methods

Attributes

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.

Public Class methods

Registers to receive messages. When a new message comes in, it will be sent to the instance method called ‘received’.

[Source]

    # 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.

[Source]

    # File lib/action_messenger/base.rb, line 27
27:       def uses_messenger(messenger)
28:         @@default_messenger = messenger
29:       end

Public Instance methods

The body of the message being built.

[Source]

     # File lib/action_messenger/base.rb, line 98
 98:     def body(body = nil)
 99:       unless body.nil?
100:         @body = body
101:       end
102:       @body
103:     end

Initialises default settings for this messenger.

[Source]

    # 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.

[Source]

    # 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.

[Source]

    # 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.

[Source]

     # 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

Sets the subject of the message being built.

[Source]

    # File lib/action_messenger/base.rb, line 90
90:     def subject(subject = nil)
91:       unless subject.nil?
92:         @subject = subject
93:       end
94:       @subject
95:     end

[Validate]