From 25cc69c3c075793f4dde885f874b2239e5131a7c Mon Sep 17 00:00:00 2001 From: Isha Date: Fri, 28 Feb 2014 12:23:26 -0500 Subject: [PATCH] add variable in c --- ext/liquid/liquid_ext.c | 1 + ext/liquid/liquid_ext.h | 1 + lib/liquid/variable.rb | 34 +++++++++++++++++----------------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/ext/liquid/liquid_ext.c b/ext/liquid/liquid_ext.c index d611231..2df9e19 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 3eba3ae..1ea396b 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 c661d97..486f16e 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