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