Class: Liquid::Increment
Overview
increment is used in a place where one needs to insert a counter
into a template, and needs the counter to survive across
multiple instantiations of the template.
(To achieve the survival, the application must keep the context)
if the variable does not exist, it is created with value 0.
Hello: {% increment variable %}
gives you:
Hello: 0
Hello: 1
Hello: 2
Instance Attribute Summary
Attributes inherited from Tag
#line_number, #nodelist, #options, #warnings
Instance Method Summary collapse
-
#initialize(tag_name, markup, options) ⇒ Increment
constructor
A new instance of Increment.
- #render(context) ⇒ Object
Methods inherited from Tag
#blank?, #name, #parse, parse, #raw
Methods included from ParserSwitching
Constructor Details
#initialize(tag_name, markup, options) ⇒ Increment
Returns a new instance of Increment.
18 19 20 21 |
# File 'lib/liquid/tags/increment.rb', line 18 def initialize(tag_name, markup, ) super @variable = markup.strip end |
Instance Method Details
#render(context) ⇒ Object
23 24 25 26 27 |
# File 'lib/liquid/tags/increment.rb', line 23 def render(context) value = context.environments.first[@variable] ||= 0 context.environments.first[@variable] = value + 1 value.to_s end |