Class: Noticed::Base
- Inherits:
-
Object
- Object
- Noticed::Base
- Extended by:
- ActiveModel::Callbacks
- Includes:
- Translation
- Defined in:
- lib/noticed/base.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#recipient ⇒ Object
Gives notifications access to the record and recipient during delivery.
-
#record ⇒ Object
Gives notifications access to the record and recipient during delivery.
Class Method Summary collapse
-
.deliver(recipients) ⇒ Object
Shortcut for delivering without params.
- .deliver_by(name, options = {}) ⇒ Object
-
.deliver_later(recipients) ⇒ Object
Shortcut for delivering later without params.
-
.inherited(base) ⇒ Object
Copy delivery methods from parent.
- .param ⇒ Object
- .params(*names) ⇒ Object
- .with(params) ⇒ Object
Instance Method Summary collapse
- #deliver(recipients) ⇒ Object
- #deliver_later(recipients) ⇒ Object
-
#initialize(params = {}) ⇒ Base
constructor
A new instance of Base.
- #params ⇒ Object
Methods included from Translation
#class_scope, #i18n_scope, #scope_translation_key, #translate
Constructor Details
#initialize(params = {}) ⇒ Base
Returns a new instance of Base.
50 51 52 |
# File 'lib/noticed/base.rb', line 50 def initialize(params = {}) @params = params end |
Instance Attribute Details
#recipient ⇒ Object
Gives notifications access to the record and recipient during delivery
13 14 15 |
# File 'lib/noticed/base.rb', line 13 def recipient @recipient end |
#record ⇒ Object
Gives notifications access to the record and recipient during delivery
13 14 15 |
# File 'lib/noticed/base.rb', line 13 def record @record end |
Class Method Details
.deliver(recipients) ⇒ Object
Shortcut for delivering without params
35 36 37 |
# File 'lib/noticed/base.rb', line 35 def deliver(recipients) new.deliver(recipients) end |
.deliver_by(name, options = {}) ⇒ Object
18 19 20 21 |
# File 'lib/noticed/base.rb', line 18 def deliver_by(name, = {}) delivery_methods.push(name: name, options: ) define_model_callbacks(name) end |
.deliver_later(recipients) ⇒ Object
Shortcut for delivering later without params
40 41 42 |
# File 'lib/noticed/base.rb', line 40 def deliver_later(recipients) new.deliver_later(recipients) end |
.inherited(base) ⇒ Object
Copy delivery methods from parent
24 25 26 27 28 |
# File 'lib/noticed/base.rb', line 24 def inherited(base) # :nodoc: base.delivery_methods = delivery_methods.dup base.param_names = param_names.dup super end |
.param ⇒ Object
47 48 49 |
# File 'lib/noticed/base.rb', line 47 def params(*names) param_names.concat Array.wrap(names) end |
.params(*names) ⇒ Object
44 45 46 |
# File 'lib/noticed/base.rb', line 44 def params(*names) param_names.concat Array.wrap(names) end |
.with(params) ⇒ Object
30 31 32 |
# File 'lib/noticed/base.rb', line 30 def with(params) new(params) end |
Instance Method Details
#deliver(recipients) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/noticed/base.rb', line 54 def deliver(recipients) validate! run_callbacks :deliver do Array.wrap(recipients).uniq.each do |recipient| run_delivery(recipient, enqueue: false) end end end |
#deliver_later(recipients) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/noticed/base.rb', line 64 def deliver_later(recipients) validate! run_callbacks :deliver do Array.wrap(recipients).uniq.each do |recipient| run_delivery(recipient, enqueue: true) end end end |
#params ⇒ Object
74 75 76 |
# File 'lib/noticed/base.rb', line 74 def params @params || {} end |