class Rsirts::Ring
Attributes
elements[RW]
indx[RW]
Public Class Methods
new(elements)
click to toggle source
# File lib/rsirts/renderer.rb, line 5 def initialize elements @elements = elements.dup @indx = 0 end
Public Instance Methods
add(new_elements)
click to toggle source
# File lib/rsirts/renderer.rb, line 10 def add new_elements left = elements.take(indx) right = elements.drop(indx) self.elements = left + new_elements + right end
next()
click to toggle source
# File lib/rsirts/renderer.rb, line 28 def next result = elements[indx] increment_indx result end
remove(count)
click to toggle source
# File lib/rsirts/renderer.rb, line 16 def remove count from_indx = size - indx from_beg = count - from_indx if count >= from_indx elements.pop(from_indx) elements.slice!(0,from_beg) unless from_beg == 0 self.indx = 0 else elements.slice!(indx,count) end end
size()
click to toggle source
# File lib/rsirts/renderer.rb, line 34 def size elements.size end
Private Instance Methods
increment_indx()
click to toggle source
# File lib/rsirts/renderer.rb, line 42 def increment_indx self.indx = indx == (size - 1) ? 0 : indx + 1 end