module Babl::Operators::Partial::DSL

Public Instance Methods

partial(partial_name) click to toggle source

Load a partial template given its name A 'lookup_context' must be defined

# File lib/babl/operators/partial.rb, line 10
def partial(partial_name)
    current_template = unscoped
    construct_terminal { |ctx|
        lookup_context = ctx[:lookup_context]
        raise Errors::InvalidTemplate, 'Cannot use partial without lookup context' unless lookup_context

        template, new_lookup_context = lookup_context.find(current_template, partial_name)
        raise Errors::InvalidTemplate, "Cannot find partial '#{partial_name}'" unless template

        template.precompile(Nodes::TerminalValue.instance, lookup_context: new_lookup_context)
    }
end