class Dynflow::RoundRobin
A simple round-robin scheduling implementation used at various places in Dynflow
Attributes
data[W]
the `add` and `delete` methods should be preferred, but sometimes the list of things to iterate though can not be owned by the round robin object itself
Public Class Methods
new()
click to toggle source
# File lib/dynflow/round_robin.rb, line 7 def initialize @data = [] @cursor = 0 end
Public Instance Methods
add(item)
click to toggle source
# File lib/dynflow/round_robin.rb, line 12 def add(item) @data.push item self end
delete(item)
click to toggle source
# File lib/dynflow/round_robin.rb, line 17 def delete(item) @data.delete item self end
empty?()
click to toggle source
# File lib/dynflow/round_robin.rb, line 29 def empty? @data.empty? end
next()
click to toggle source
# File lib/dynflow/round_robin.rb, line 22 def next @cursor = 0 if @cursor > @data.size - 1 @data[@cursor] ensure @cursor += 1 end