Class: DispatchRider::NotificationServices::Base
- Inherits:
-
Object
- Object
- DispatchRider::NotificationServices::Base
- Extended by:
- Forwardable
- Defined in:
- lib/dispatch-rider/notification_services/base.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#channel_registrar ⇒ Object
readonly
Returns the value of attribute channel_registrar.
-
#notifier ⇒ Object
readonly
Returns the value of attribute notifier.
Instance Method Summary collapse
- #channel(name) ⇒ Object
- #channel_registrar_builder ⇒ Object
- #channels(names) ⇒ Object
-
#initialize(options = {}) ⇒ Base
constructor
A new instance of Base.
- #notifier_builder ⇒ Object
- #publish(to:, message:) ⇒ Object
- #publish_to_channel(channel, message:) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
18 19 20 21 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 18 def initialize( = {}) @notifier = notifier_builder.new() @channel_registrar = channel_registrar_builder.new end |
Instance Attribute Details
#channel_registrar ⇒ Object (readonly)
Returns the value of attribute channel_registrar.
14 15 16 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 14 def channel_registrar @channel_registrar end |
#notifier ⇒ Object (readonly)
Returns the value of attribute notifier.
14 15 16 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 14 def notifier @notifier end |
Instance Method Details
#channel(name) ⇒ Object
39 40 41 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 39 def channel(name) raise NotImplementedError end |
#channel_registrar_builder ⇒ Object
27 28 29 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 27 def channel_registrar_builder raise NotImplementedError end |
#channels(names) ⇒ Object
35 36 37 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 35 def channels(names) Array(names).map { |name| channel(name) } end |
#notifier_builder ⇒ Object
23 24 25 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 23 def notifier_builder raise NotImplementedError end |
#publish(to:, message:) ⇒ Object
31 32 33 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 31 def publish(to:, message:) channels(to).each { |channel| publish_to_channel channel, message: } end |
#publish_to_channel(channel, message:) ⇒ Object
43 44 45 |
# File 'lib/dispatch-rider/notification_services/base.rb', line 43 def publish_to_channel(channel, message:) channel.publish(serialize()) end |