Add a variable_name method Increment and Decrement tags objects (#1609)

In order to expose this state when using the parse tree.
This commit is contained in:
Dylan Thacker-Smith
2022-08-31 09:18:33 -04:00
committed by GitHub
parent eb89f22d93
commit 3a736da222
2 changed files with 12 additions and 6 deletions
+6 -3
View File
@@ -19,15 +19,18 @@ module Liquid
# {% decrement variable_name %} # {% decrement variable_name %}
# @liquid_syntax_keyword variable_name The name of the variable being decremented. # @liquid_syntax_keyword variable_name The name of the variable being decremented.
class Decrement < Tag class Decrement < Tag
attr_reader :variable_name
def initialize(tag_name, markup, options) def initialize(tag_name, markup, options)
super super
@variable = markup.strip @variable_name = markup.strip
end end
def render_to_output_buffer(context, output) def render_to_output_buffer(context, output)
value = context.environments.first[@variable] ||= 0 counter_environment = context.environments.first
value = counter_environment[@variable_name] || 0
value -= 1 value -= 1
context.environments.first[@variable] = value counter_environment[@variable_name] = value
output << value.to_s output << value.to_s
output output
end end
+6 -3
View File
@@ -19,14 +19,17 @@ module Liquid
# {% increment variable_name %} # {% increment variable_name %}
# @liquid_syntax_keyword variable_name The name of the variable being incremented. # @liquid_syntax_keyword variable_name The name of the variable being incremented.
class Increment < Tag class Increment < Tag
attr_reader :variable_name
def initialize(tag_name, markup, options) def initialize(tag_name, markup, options)
super super
@variable = markup.strip @variable_name = markup.strip
end end
def render_to_output_buffer(context, output) def render_to_output_buffer(context, output)
value = context.environments.first[@variable] ||= 0 counter_environment = context.environments.first
context.environments.first[@variable] = value + 1 value = counter_environment[@variable_name] || 0
counter_environment[@variable_name] = value + 1
output << value.to_s output << value.to_s
output output