Class: Caffeinate::Dripper::DripCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/caffeinate/dripper/drip_collection.rb

Overview

A collection of Drip objects for a ‘Caffeinate::Dripper`

Constant Summary collapse

VALID_DRIP_OPTIONS =
[:mailer_class, :step, :delay, :every, :start, :using, :mailer, :at, :on].freeze

Instance Method Summary collapse

Constructor Details

#initialize(dripper) ⇒ DripCollection

Returns a new instance of DripCollection.



11
12
13
14
# File 'lib/caffeinate/dripper/drip_collection.rb', line 11

def initialize(dripper)
  @dripper = dripper
  @drips = {}
end

Instance Method Details

#[](val) ⇒ Object



39
40
41
# File 'lib/caffeinate/dripper/drip_collection.rb', line 39

def [](val)
  @drips[val]
end

#each(&block) ⇒ Object



27
28
29
# File 'lib/caffeinate/dripper/drip_collection.rb', line 27

def each(&block)
  @drips.each { |action_name, drip| block.call(action_name, drip) }
end

#for(action) ⇒ Object



16
17
18
# File 'lib/caffeinate/dripper/drip_collection.rb', line 16

def for(action)
  @drips[action.to_sym]
end

#register(action, options, &block) ⇒ Object

Register the drip



21
22
23
24
25
# File 'lib/caffeinate/dripper/drip_collection.rb', line 21

def register(action, options, &block)
  options = validate_drip_options(action, options)

  @drips[action.to_sym] = ::Caffeinate::Drip.new(@dripper, action, options, &block)
end

#sizeObject



35
36
37
# File 'lib/caffeinate/dripper/drip_collection.rb', line 35

def size
  @drips.size
end

#valuesObject



31
32
33
# File 'lib/caffeinate/dripper/drip_collection.rb', line 31

def values
  @drips.values
end