# File lib/liquid/tags/case.rb, line 6 def initialize(tag_name, markup, tokens) @blocks = [] if markup =~ Syntax @left = $1 else raise SyntaxError.new("Syntax Error in tag 'case' - Valid syntax: case [condition]") end super end
# File lib/liquid/tags/case.rb, line 30 def render(context) context.stack do execute_else_block = true output = '' @blocks.each do |block| if block.else? return render_all(block.attachment, context) if execute_else_block elsif block.evaluate(context) execute_else_block = false output << render_all(block.attachment, context) end end output end end
# File lib/liquid/tags/case.rb, line 18 def unknown_tag(tag, markup, tokens) @nodelist = [] case tag when 'when' record_when_condition(markup) when 'else' record_else_condition(markup) else super end end