class ActionView::StreamingFlow

:nodoc:

def append!(key, value)

the key it is waiting for.
by provides and resumes back to the fiber if it is
Appends the contents for the given key. This is called
def append!(key, value)
  super
  @fiber.resume if @waiting_for == key
end

def get(key)

key and yield.
fiber, we set that we are waiting for the given
is not available and we are inside the layout
Try to get stored content. If the content
def get(key)
  return super if @content.key?(key)
  if inside_fiber?
    view = @view
    begin
      @waiting_for = key
      view.output_buffer, @parent = @child, view.output_buffer
      Fiber.yield
    ensure
      @waiting_for = nil
      view.output_buffer, @child = @parent, view.output_buffer
    end
  end
  super
end

def initialize(view, fiber)

:nodoc:
def initialize(view, fiber)
  @view    = view
  @parent  = nil
  @child   = view.output_buffer
  @content = view.view_flow.content
  @fiber   = fiber
  @root    = Fiber.current.object_id
end

def inside_fiber?

def inside_fiber?
  Fiber.current.object_id != @root
end