Class: Antlers::NodeFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/factories/node_factory.rb

Instance Method Summary collapse

Constructor Details

#initialize(namespace:) ⇒ NodeFactory

Returns a new instance of NodeFactory.



13
14
15
# File 'lib/factories/node_factory.rb', line 13

def initialize(namespace:)
  @namespace = namespace
end

Instance Method Details

#for_node(segment:) ⇒ Object



21
22
23
24
# File 'lib/factories/node_factory.rb', line 21

def for_node(segment:)
  value, key, items = segment.values_at(:for_def, :key, :in)
  ForNode.new(name: value, key:, value:, items:)
end

#form_node(segment:) ⇒ Object



26
27
28
29
30
31
# File 'lib/factories/node_factory.rb', line 26

def form_node(segment:)
  action, method = segment.values_at(:form_def, :method)
  return FormNode.new(name: action, action:, method:) if method

  FormNode.new(name: action, action:)
end

#if_node(segment:) ⇒ Object



17
18
19
# File 'lib/factories/node_factory.rb', line 17

def if_node(segment:)
  IfNode.new(name: segment[:if_def], value: segment[:if_def])
end

#prop_node(segment:) ⇒ Object



33
34
35
# File 'lib/factories/node_factory.rb', line 33

def prop_node(segment:)
  PropNode.new(name: segment[:prop], props: segment[:props], namespace:)
end

#raw_var_node(segment:) ⇒ Object



45
46
47
# File 'lib/factories/node_factory.rb', line 45

def raw_var_node(segment:)
  VarNode.new(value: segment[:raw_var], raw: true)
end

#slot_node(segment:) ⇒ Object



37
38
39
# File 'lib/factories/node_factory.rb', line 37

def slot_node(segment:)
  SlotNode.new(name: segment[:slot_def], props: segment[:props], namespace:)
end

#var_node(segment:) ⇒ Object



41
42
43
# File 'lib/factories/node_factory.rb', line 41

def var_node(segment:)
  VarNode.new(value: segment[:var])
end

#yield_node(segment:) ⇒ Object



49
50
51
# File 'lib/factories/node_factory.rb', line 49

def yield_node(segment:)
  YieldNode.new(name: segment[:slot])
end