diff --git a/ext/liquid/liquid_ext.c b/ext/liquid/liquid_ext.c index d6112319..2df9e199 100644 --- a/ext/liquid/liquid_ext.c +++ b/ext/liquid/liquid_ext.c @@ -12,4 +12,5 @@ void Init_liquid(void) init_liquid_tokenizer(); init_liquid_block(); + init_liquid_variable(); } diff --git a/ext/liquid/liquid_ext.h b/ext/liquid/liquid_ext.h index 3eba3aec..1ea396b4 100644 --- a/ext/liquid/liquid_ext.h +++ b/ext/liquid/liquid_ext.h @@ -8,6 +8,7 @@ #include "tokenizer.h" #include "block.h" #include "utils.h" +#include "variable.h" extern VALUE mLiquid; extern VALUE cLiquidTemplate, cLiquidTag, cLiquidVariable; diff --git a/lib/liquid/variable.rb b/lib/liquid/variable.rb index c661d974..486f16ea 100644 --- a/lib/liquid/variable.rb +++ b/lib/liquid/variable.rb @@ -11,7 +11,7 @@ module Liquid # {{ user | link }} # class Variable - FilterParser = /(?:#{FilterSeparator}|(?:\s*(?:#{QuotedFragment}|#{ArgumentSeparator})\s*)+)/o +# FilterParser = /(?:#{FilterSeparator}|(?:\s*(?:#{QuotedFragment}|#{ArgumentSeparator})\s*)+)/o EasyParse = /\A *(\w+(?:\.\w+)*) *\z/ attr_accessor :filters, :name, :warnings @@ -35,22 +35,22 @@ module Liquid end end - def lax_parse(markup) - @filters = [] - if match = markup.match(/\s*(#{QuotedFragment})(.*)/o) - @name = match[1] - if match[2].match(/#{FilterSeparator}\s*(.*)/o) - filters = Regexp.last_match(1).scan(FilterParser) - filters.each do |f| - if matches = f.match(/\s*(\w+)/) - filtername = matches[1] - filterargs = f.scan(/(?:#{FilterArgumentSeparator}|#{ArgumentSeparator})\s*((?:\w+\s*\:\s*)?#{QuotedFragment})/o).flatten - @filters << [filtername, filterargs] - end - end - end - end - end +# def lax_parse(markup) +# @filters = [] +# if match = markup.match(/\s*(#{QuotedFragment})(.*)/o) +# @name = match[1] +# if match[2].match(/#{FilterSeparator}\s*(.*)/o) +# filters = Regexp.last_match(1).scan(FilterParser) +# filters.each do |f| +# if matches = f.match(/\s*(\w+)/) +# filtername = matches[1] +# filterargs = f.scan(/(?:#{FilterArgumentSeparator}|#{ArgumentSeparator})\s*((?:\w+\s*\:\s*)?#{QuotedFragment})/o).flatten +# @filters << [filtername, filterargs] +# end +# end +# end +# end +# end def strict_parse(markup) # Very simple valid cases