Class: NuHttp::HerbRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/nuhttp/herb_renderer.rb

Instance Method Summary collapse

Instance Method Details

#render(template_path, locals = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/nuhttp/herb_renderer.rb', line 8

def render(template_path, locals = {})
  template_src = File.read(template_path)
  engine = Herb::Engine.new(template_src, filename: template_path)

  erbctx = EmptyBinding.get_binding
  locals.each do |name, value|
    erbctx.local_variable_set(name, value)
  end

  # Herb::Engine generates Ruby code that returns the rendered string when evaluated
  ruby_src = engine.src
  eval(ruby_src, erbctx)
end