Class: Enumex::Extenders::EveryOnceExtender::Counter

Inherits:
Object
  • Object
show all
Defined in:
lib/enumex/extenders/every_once_extender.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(number) ⇒ Counter

Returns a new instance of Counter.



35
36
37
38
# File 'lib/enumex/extenders/every_once_extender.rb', line 35

def initialize(number)
  @counter = (1..number).cycle
  @max_number = number
end

Instance Attribute Details

#blockObject

Returns the value of attribute block.



33
34
35
# File 'lib/enumex/extenders/every_once_extender.rb', line 33

def block
  @block
end

#counterObject (readonly)

Returns the value of attribute counter.



32
33
34
# File 'lib/enumex/extenders/every_once_extender.rb', line 32

def counter
  @counter
end

#max_numberObject (readonly)

Returns the value of attribute max_number.



32
33
34
# File 'lib/enumex/extenders/every_once_extender.rb', line 32

def max_number
  @max_number
end

Instance Method Details

#execute(*args) ⇒ Object



44
45
46
47
# File 'lib/enumex/extenders/every_once_extender.rb', line 44

def execute(*args)
  return if counter.next != max_number
  block.call(*args) if block
end

#resetObject



40
41
42
# File 'lib/enumex/extenders/every_once_extender.rb', line 40

def reset
  counter.rewind
end