mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
Allow filters in assign.
A simple attempt, but basically it shifts the parsing of the right hand side of the assign from a simple context lookup to using the Variable parser (that includes filters). Fixes #79.
This commit is contained in:
@@ -9,12 +9,12 @@ module Liquid
|
||||
# {{ foo }}
|
||||
#
|
||||
class Assign < Tag
|
||||
Syntax = /(#{VariableSignature}+)\s*=\s*(#{QuotedFragment}+)/
|
||||
Syntax = /(#{VariableSignature}+)\s*=\s*(.*)\s*/
|
||||
|
||||
def initialize(tag_name, markup, tokens)
|
||||
if markup =~ Syntax
|
||||
@to = $1
|
||||
@from = $2
|
||||
@from = Variable.new($2)
|
||||
else
|
||||
raise SyntaxError.new("Syntax Error in 'assign' - Valid syntax: assign [var] = [source]")
|
||||
end
|
||||
@@ -23,7 +23,7 @@ module Liquid
|
||||
end
|
||||
|
||||
def render(context)
|
||||
context.scopes.last[@to] = context[@from]
|
||||
context.scopes.last[@to] = @from.render(context)
|
||||
''
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user