class Gumdrop::ContextPool

Public Class Methods

new(renderer, size=3) click to toggle source
# File lib/gumdrop/renderer.rb, line 210
def initialize(renderer, size=3)
  @_current= -1
  @renderer= renderer
  @pool=[]
  prev= nil
  size.times do |i|
    ctx= RenderContext.new nil, nil, renderer, prev
    @pool << ctx
    prev= ctx
  end
end

Public Instance Methods

current() click to toggle source
# File lib/gumdrop/renderer.rb, line 234
def current
  @pool[@_current]
end
next() click to toggle source
# File lib/gumdrop/renderer.rb, line 228
def next
  @_current += 1
  @pool << RenderContext.new( nil, nil, @renderer, prev ) if @_current == @pool.size
  @pool[@_current]      
end
pop() click to toggle source
# File lib/gumdrop/renderer.rb, line 242
def pop
  @_current -= 1
  @pool[@_current]      
end
prev() click to toggle source
# File lib/gumdrop/renderer.rb, line 238
def prev
  @pool[@_current - 1] rescue nil
end
root() click to toggle source
# File lib/gumdrop/renderer.rb, line 247
def root
  @pool[0]
end
size() click to toggle source
# File lib/gumdrop/renderer.rb, line 251
def size
  @_current + 1
end
sub_context() { |next, prev| ... } click to toggle source
# File lib/gumdrop/renderer.rb, line 222
def sub_context
  result= yield self.next, self.prev
  self.pop
  result
end