Class: Lavender::Renderer

Inherits:
Object
  • Object
show all
Defined in:
lib/lavender/renderer.rb

Instance Method Summary collapse

Constructor Details

#initialize(type, input) ⇒ Renderer

Returns a new instance of Renderer.



3
4
5
6
# File 'lib/lavender/renderer.rb', line 3

def initialize type, input
  @type = type
  @input = input
end

Instance Method Details

#render(vars = {}, &block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/lavender/renderer.rb', line 8

def render vars = {}, &block
  @vars = vars

  case @type
  when :raw
    @input
  when :erb
    def method_missing name
      @vars[name] || @vars[name.to_s]
    end
    ERB.new(@input).result(binding)
  when :haml
    Haml::Engine.new(@input).to_html(Object.new, @vars, &block)
  end
end