Module: Caffeinate::Dripper::Drip::ClassMethods
- Defined in:
- lib/caffeinate/dripper/drip.rb
Instance Method Summary collapse
-
#drip(action_name, options = {}, &block) ⇒ Object
Register a drip on the Dripper.
-
#drip_collection ⇒ Object
A collection of Drip objects associated with a given ‘Caffeinate::Dripper`.
-
#drips ⇒ Object
A collection of Drip objects associated with a given ‘Caffeinate::Dripper`.
Instance Method Details
#drip(action_name, options = {}, &block) ⇒ Object
Register a drip on the Dripper
drip :mailer_action_name, mailer_class: "MailerClass", step: 1, delay: 1.hour
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/caffeinate/dripper/drip.rb', line 63 def drip(action_name, = {}, &block) .assert_valid_keys(:mailer_class, :step, :delay, :using, :mailer) [:mailer_class] ||= [:mailer] || defaults[:mailer_class] [:using] ||= defaults[:using] [:step] ||= drips.size + 1 if [:mailer_class].nil? raise ArgumentError, "You must define :mailer_class or :mailer in the options for :#{action_name}" end raise ArgumentError, "You must define :delay in the options for :#{action_name}" if [:delay].nil? drip_collection.register(action_name, , &block) end |
#drip_collection ⇒ Object
A collection of Drip objects associated with a given ‘Caffeinate::Dripper`
45 46 47 |
# File 'lib/caffeinate/dripper/drip.rb', line 45 def drip_collection @drip_collection ||= DripCollection.new(self) end |
#drips ⇒ Object
A collection of Drip objects associated with a given ‘Caffeinate::Dripper`
50 51 52 |
# File 'lib/caffeinate/dripper/drip.rb', line 50 def drips drip_collection.values end |