Class Wee::Renderer
In: lib/wee/renderer.rb
Parent: Object

Base class of all Renderer classes.

Methods

close   new   render   render_decoration   with  

Attributes

callbacks  [RW] 
current_component  [RW] 
document  [RW] 
request  [RW] 
response  [RW] 

Public Class methods

[Source]

# File lib/wee/renderer.rb, line 13
    def initialize(request=nil, response=nil, callbacks=nil, document=nil, current_component=nil)
      @request = request
      @response = response
      @callbacks = callbacks
      @document = document
      @current_component = current_component
    end

Public Instance methods

Subclass responsibility.

[Source]

# File lib/wee/renderer.rb, line 58
    def close
    end

[Source]

# File lib/wee/renderer.rb, line 43
    def render(component)
      close
      component.decoration.render_on(self)
      nil
    end

[Source]

# File lib/wee/renderer.rb, line 49
    def render_decoration(decoration)
      close
      decoration.render_on(self)
      nil
    end

[Source]

# File lib/wee/renderer.rb, line 21
    def with(component)
      rclass = component.renderer_class
      if rclass == self
        # reuse renderer
        old_component = @current_component 
        begin
          @current_component = component
          yield self
        ensure
          @current_component = old_component
        end
      else
        close
        r = rclass.new(@request, @response, @callbacks, @document, component)
        begin
          yield r
        ensure
          r.close
        end
      end
    end

[Validate]