Module: Caffeinate::Dripper::Subscriber::ClassMethods
- Defined in:
- lib/caffeinate/dripper/subscriber.rb
Instance Method Summary collapse
-
#subscribe(subscriber, **args) ⇒ Caffeinate::CampaignSubscriber
Subscribes to the campaign.
-
#subscribe! ⇒ Object
Runs the subscriber_block.
-
#subscribes(&block) ⇒ Object
The subscriber block.
-
#subscribes_block ⇒ Object
:nodoc:.
-
#subscriptions ⇒ Object
Returns the campaign’s
Caffeinate::CampaignSubscriber. -
#unsubscribe(subscriber, **args) ⇒ Caffeinate::CampaignSubscriber
Unsubscribes from the campaign.
-
#unsubscribe!(subscriber, **args) ⇒ Caffeinate::CampaignSubscriber
Unsubscribes from the campaign.
Instance Method Details
#subscribe(subscriber, **args) ⇒ Caffeinate::CampaignSubscriber
Subscribes to the campaign.
OrderDripper.subscribe(order, user: order.user)
33 34 35 |
# File 'lib/caffeinate/dripper/subscriber.rb', line 33 def subscribe(subscriber, **args) caffeinate_campaign.subscribe!(subscriber, **args) end |
#subscribe! ⇒ Object
Runs the subscriber_block
OrderDripper.subscribe!
16 17 18 |
# File 'lib/caffeinate/dripper/subscriber.rb', line 16 def subscribe! subscribes_block.call end |
#subscribes(&block) ⇒ Object
The subscriber block. Used to create ::Caffeinate::CampaignSubscribers subscribers.
subscribes do
Cart.left_joins(:cart_items)
.includes(:user)
.where(completed_at: nil)
.where(updated_at: 1.day.ago..2.days.ago)
.having('count(cart_items.id) > 0').each do |cart|
subscribe(cart, user: cart.user)
end
end
No need to worry about checking if the given subscriber being already subscribed. The subscribe method does that for you.
Optionally, can subscribe a user manually via ‘Caffeinate::Campaign#subscribe`
84 85 86 |
# File 'lib/caffeinate/dripper/subscriber.rb', line 84 def subscribes(&block) @subscribes_block = block end |
#subscribes_block ⇒ Object
:nodoc:
62 63 64 65 66 |
# File 'lib/caffeinate/dripper/subscriber.rb', line 62 def subscribes_block raise(NotImplementedError, 'Define subscribes') unless @subscribes_block @subscribes_block end |
#subscriptions ⇒ Object
Returns the campaign’s Caffeinate::CampaignSubscriber
21 22 23 |
# File 'lib/caffeinate/dripper/subscriber.rb', line 21 def subscriptions caffeinate_campaign.caffeinate_campaign_subscriptions end |
#unsubscribe(subscriber, **args) ⇒ Caffeinate::CampaignSubscriber
Unsubscribes from the campaign. Returns false if something’s wrong.
OrderDripper.unsubscribe(order, user: order.user)
45 46 47 |
# File 'lib/caffeinate/dripper/subscriber.rb', line 45 def unsubscribe(subscriber, **args) caffeinate_campaign.unsubscribe(subscriber, **args) end |
#unsubscribe!(subscriber, **args) ⇒ Caffeinate::CampaignSubscriber
Unsubscribes from the campaign. Raises error if somerthing’s wrong.
OrderDripper.unsubscribe(order, user: order.user)
57 58 59 |
# File 'lib/caffeinate/dripper/subscriber.rb', line 57 def unsubscribe!(subscriber, **args) caffeinate_campaign.unsubscribe!(subscriber, **args) end |