Class: Liquid::Increment

Inherits:
Tag
  • Object
show all
Defined in:
lib/liquid/tags/increment.rb

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

#nodelist, #options, #warnings

Instance Method Summary collapse

Methods inherited from Tag

#name, parse, #parse, #parse_with_selected_parser

Constructor Details

#initialize(tag_name, markup, options) ⇒ Increment



18
19
20
21
# File 'lib/liquid/tags/increment.rb', line 18

def initialize(tag_name, markup, options)
  super
  @variable = markup.strip
end

Instance Method Details

#blank?Boolean



29
30
31
# File 'lib/liquid/tags/increment.rb', line 29

def blank?
  false
end

#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