Class: Frontman::ErbRenderer
- Defined in:
- lib/frontman/renderers/erb_renderer.rb
Instance Method Summary collapse
- #compile(layout) ⇒ Object
- #load_buffer(context) ⇒ Object
- #render_content(compiled, content, scope, data) ⇒ Object
- #restore_buffer(context) ⇒ Object
- #save_buffer(context) ⇒ Object
Methods inherited from Renderer
Instance Method Details
#compile(layout) ⇒ Object
9 10 11 |
# File 'lib/frontman/renderers/erb_renderer.rb', line 9 def compile(layout) Erubis::Eruby.new(layout, bufvar: '@_erbout') end |
#load_buffer(context) ⇒ Object
35 36 37 |
# File 'lib/frontman/renderers/erb_renderer.rb', line 35 def load_buffer(context) context.instance_variable_get(:@_erbout) end |
#render_content(compiled, content, scope, data) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/frontman/renderers/erb_renderer.rb', line 13 def render_content(compiled, content, scope, data) data.each do |key, value| scope.singleton_class.send(:define_method, key) { value } end compiled.result(scope.get_binding { content }) end |
#restore_buffer(context) ⇒ Object
30 31 32 33 |
# File 'lib/frontman/renderers/erb_renderer.rb', line 30 def restore_buffer(context) context.instance_variable_set(:@_erbout, @buffer) if @buffer @buffer = nil end |
#save_buffer(context) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/frontman/renderers/erb_renderer.rb', line 21 def save_buffer(context) buffer = context.instance_variable_get(:@_erbout) return unless buffer @buffer = buffer context.instance_variable_set(:@_erbout, '') end |