From 8f4b398c7a98002e3ff83b48b8bf3a6e63cb7c61 Mon Sep 17 00:00:00 2001 From: Tristan Hume Date: Mon, 29 Jul 2013 13:00:35 -0400 Subject: [PATCH] Abstract parser switching into tag --- lib/liquid/tag.rb | 15 +++++++++++++++ lib/liquid/tags/if.rb | 17 +---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/liquid/tag.rb b/lib/liquid/tag.rb index ba04ba6..408a86d 100644 --- a/lib/liquid/tag.rb +++ b/lib/liquid/tag.rb @@ -22,5 +22,20 @@ module Liquid def blank? @blank || true end + + def switch_parse(markup) + case Template.error_mode + when :strict then strict_parse(markup) + when :lax then lax_parse(markup) + when :warn + begin + return strict_parse(markup) + rescue SyntaxError => e + @warnings ||= [] + @warnings << e + return lax_parse(markup) + end + end + end end # Tag end # Liquid diff --git a/lib/liquid/tags/if.rb b/lib/liquid/tags/if.rb index 027620a..2ff061b 100644 --- a/lib/liquid/tags/if.rb +++ b/lib/liquid/tags/if.rb @@ -46,28 +46,13 @@ module Liquid block = if tag == 'else' ElseCondition.new else - parse_condition(markup) + switch_parse(markup) end @blocks.push(block) @nodelist = block.attach(Array.new) end - def parse_condition(markup) - case Template.error_mode - when :strict then strict_parse(markup) - when :lax then lax_parse(markup) - when :warn - begin - return strict_parse(markup) - rescue SyntaxError => e - @warnings ||= [] - @warnings << e - return lax_parse(markup) - end - end - end - def lax_parse(markup) expressions = markup.scan(ExpressionsAndOperators).reverse raise(SyntaxError, SyntaxHelp) unless expressions.shift =~ Syntax