Module: Caffeinate::Dripper::Perform
- Defined in:
- lib/caffeinate/dripper/perform.rb
Overview
Handles delivering a ‘Caffeinate::Mailing` for the `Caffeinate::Dripper`.
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
-
.included(klass) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#perform! ⇒ Object
Delivers the next_caffeinate_mailer for the campaign’s subscribers.
Class Method Details
.included(klass) ⇒ Object
:nodoc:
8 9 10 |
# File 'lib/caffeinate/dripper/perform.rb', line 8 def self.included(klass) klass.extend ClassMethods end |
Instance Method Details
#perform! ⇒ Object
Delivers the next_caffeinate_mailer for the campaign’s subscribers. Handles with batches based on ‘batch_size`.
OrderDripper.new.perform!
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/caffeinate/dripper/perform.rb', line 17 def perform! run_callbacks(:before_perform, self) self.class.upcoming_mailings .in_batches(of: self.class.batch_size) .each do |batch| run_callbacks(:on_perform, self, batch) batch.each(&:process!) end run_callbacks(:after_perform, self) nil end |