Class: Babl::Nodes::With

Inherits:
Object
  • Object
show all
Defined in:
lib/babl/nodes/with.rb

Instance Method Summary collapse

Instance Method Details

#render(frame) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/babl/nodes/with.rb', line 45

def render(frame)
    values = nodes.map { |n| n.render(frame) }

    value = begin
        block.call(*values)
    rescue StandardError => e
        raise Errors::RenderingError, "#{e.message}\n" + frame.formatted_stack(:__block__), e.backtrace
    end

    frame.move_forward(value, :__block__) do |new_frame|
        node.render(new_frame)
    end
end