Class: Curlybars::Node::UnlessElse

Inherits:
Struct
  • Object
show all
Defined in:
lib/curlybars/node/unless_else.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#else_templateObject

Returns the value of attribute else_template

Returns:

  • (Object)

    the current value of else_template



3
4
5
# File 'lib/curlybars/node/unless_else.rb', line 3

def else_template
  @else_template
end

#expressionObject

Returns the value of attribute expression

Returns:

  • (Object)

    the current value of expression



3
4
5
# File 'lib/curlybars/node/unless_else.rb', line 3

def expression
  @expression
end

#unless_templateObject

Returns the value of attribute unless_template

Returns:

  • (Object)

    the current value of unless_template



3
4
5
# File 'lib/curlybars/node/unless_else.rb', line 3

def unless_template
  @unless_template
end

Instance Method Details

#cache_keyObject



24
25
26
27
28
29
30
# File 'lib/curlybars/node/unless_else.rb', line 24

def cache_key
  [
    expression,
    unless_template,
    else_template
  ].map(&:cache_key).push(self.class.name).join("/")
end

#compileObject



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/curlybars/node/unless_else.rb', line 4

def compile
  # NOTE: the following is a heredoc string, representing the ruby code fragment
  # outputted by this node.
  "    unless rendering.to_bool(rendering.cached_call(\#{expression.compile}))\n      \#{unless_template.compile}\n    else\n      \#{else_template.compile}\n    end\n  RUBY\nend\n"

#validate(branches) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/curlybars/node/unless_else.rb', line 16

def validate(branches)
  [
    expression.validate(branches),
    unless_template.validate(branches),
    else_template.validate(branches)
  ]
end