Class: Solid::ConditionalBlock
- Inherits:
-
Liquid::Block
- Object
- Liquid::Block
- Solid::ConditionalBlock
show all
- Includes:
- Element
- Defined in:
- lib/solid/conditional_block.rb
Instance Method Summary
collapse
Methods included from Element
#arguments, #current_context, #display, included, #initialize, #with_context
Instance Method Details
#render(context) ⇒ Object
5
6
7
8
9
10
11
|
# File 'lib/solid/conditional_block.rb', line 5
def render(context)
with_context(context) do
display(*arguments.interpolate(context)) do |condition_satisfied|
render_with_condition(condition_satisfied, context)
end
end
end
|
#render_with_condition(condition_satisfied, context) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/solid/conditional_block.rb', line 13
def render_with_condition(condition_satisfied, context)
_body = nil
if condition_satisfied
_body = @condition_satisfied_body
else
return '' if @condition_satisfied_body.nil?
end
(_body || @body).render(context)
end
|
#unknown_tag(tag, markup, tokens) ⇒ Object
25
26
27
28
29
30
31
32
|
# File 'lib/solid/conditional_block.rb', line 25
def unknown_tag(tag, markup, tokens)
if tag == 'else'
@condition_satisfied_body = @body.clone
@body.instance_variable_set(:@nodelist, [])
else
super
end
end
|