Class: Sleeper::Schedule

Inherits:
Object
  • Object
show all
Defined in:
lib/sleeper/schedule.rb

Defined Under Namespace

Classes: LoopableRange

Instance Method Summary collapse

Constructor Details

#initialize(values, recycle = false) ⇒ Schedule

Returns a new instance of Schedule.



3
4
5
6
# File 'lib/sleeper/schedule.rb', line 3

def initialize(values, recycle=false)
  @values = values
  @index = LoopableRange.new(0, values.length - 1, cyclic: recycle)
end

Instance Method Details

#currentObject



12
13
14
# File 'lib/sleeper/schedule.rb', line 12

def current
  @values[index]
end

#indexObject



22
23
24
# File 'lib/sleeper/schedule.rb', line 22

def index
  @index.position
end

#lastObject



16
17
18
19
20
# File 'lib/sleeper/schedule.rb', line 16

def last
  index == 0 ? prev = 0 : prev = index - 1

  @values[prev]
end

#nextObject



8
9
10
# File 'lib/sleeper/schedule.rb', line 8

def next
  @values[@index.succ]
end

#resetObject



26
27
28
# File 'lib/sleeper/schedule.rb', line 26

def reset
  @index.reset
end