Module: Antlers

Defined in:
lib/antlers.rb,
lib/antlers/lexer.rb,
lib/modules/props.rb,
lib/nodes/if_node.rb,
lib/antlers/parser.rb,
lib/nodes/for_node.rb,
lib/nodes/var_node.rb,
lib/antlers/version.rb,
lib/nodes/form_node.rb,
lib/nodes/html_node.rb,
lib/nodes/prop_node.rb,
lib/nodes/root_node.rb,
lib/nodes/slot_node.rb,
lib/support/queries.rb,
lib/antlers/elements.rb,
lib/nodes/yield_node.rb,
lib/interfaces/lexeme.rb,
lib/lexemes/if_lexeme.rb,
lib/modules/namespace.rb,
lib/modules/variables.rb,
lib/lexemes/for_lexeme.rb,
lib/lexemes/var_lexeme.rb,
lib/lexemes/form_lexeme.rb,
lib/lexemes/prop_lexeme.rb,
lib/lexemes/slot_lexeme.rb,
lib/interfaces/leaf_node.rb,
lib/lexemes/yield_lexeme.rb,
lib/interfaces/antler_node.rb,
lib/interfaces/branch_node.rb

Defined Under Namespace

Modules: ForLexeme, FormLexeme, IfLexeme, Lexeme, Namespace, PropLexeme, Props, Queries, SlotLexeme, VarLexeme, Variables, YieldLexeme Classes: AntlerNode, BranchNode, Elements, ForNode, FormNode, HTMLNode, IfNode, LeafNode, Lexer, LexerError, Parser, PropNode, RootNode, SlotNode, VarNode, YieldNode

Constant Summary collapse

DEFAULT_ELEMENTS =
[:root, :html, :form, :for, :if, :prop, :slot, :yield, :var]
VERSION =
'0.9.0'

Class Method Summary collapse

Class Method Details

.ast(template:, namespace: nil, elements: ) ⇒ Object



15
16
17
18
# File 'lib/antlers.rb', line 15

def ast(template:, namespace: nil, elements: Elements[*DEFAULT_ELEMENTS])
  sequence = Lexer.new(lexeme_types: elements[:lexeme]).parse(template:)
  Parser.new(namespace:, node_types: elements[:node]).parse(sequence:, template:)
end

.render(ast:, current_binding:, parent_binding: nil, slot_node: nil) ⇒ Object



20
21
22
# File 'lib/antlers.rb', line 20

def render(ast:, current_binding:, parent_binding: nil, slot_node: nil)
  ast.render(current_binding:, parent_binding:, slot_node:)
end