From 62474586ba56f27d81e66c49233f79e15ad57a04 Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Tue, 30 Aug 2022 12:48:25 -0400 Subject: [PATCH] Add a variable_name method Increment and Decrement tags objects In order to expose this state when using the parse tree. --- lib/liquid/tags/decrement.rb | 9 ++++++--- lib/liquid/tags/increment.rb | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/liquid/tags/decrement.rb b/lib/liquid/tags/decrement.rb index f1e67e2e7..1a2154d3b 100644 --- a/lib/liquid/tags/decrement.rb +++ b/lib/liquid/tags/decrement.rb @@ -19,15 +19,18 @@ module Liquid # {% decrement variable_name %} # @liquid_syntax_keyword variable_name The name of the variable being decremented. class Decrement < Tag + attr_reader :variable_name + def initialize(tag_name, markup, options) super - @variable = markup.strip + @variable_name = markup.strip end 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 - context.environments.first[@variable] = value + counter_environment[@variable_name] = value output << value.to_s output end diff --git a/lib/liquid/tags/increment.rb b/lib/liquid/tags/increment.rb index f3edd3bc9..2965b3b12 100644 --- a/lib/liquid/tags/increment.rb +++ b/lib/liquid/tags/increment.rb @@ -19,14 +19,17 @@ module Liquid # {% increment variable_name %} # @liquid_syntax_keyword variable_name The name of the variable being incremented. class Increment < Tag + attr_reader :variable_name + def initialize(tag_name, markup, options) super - @variable = markup.strip + @variable_name = markup.strip end def render_to_output_buffer(context, output) - value = context.environments.first[@variable] ||= 0 - context.environments.first[@variable] = value + 1 + counter_environment = context.environments.first + value = counter_environment[@variable_name] || 0 + counter_environment[@variable_name] = value + 1 output << value.to_s output