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

- (Increment) initialize(tag_name, markup, options)

Returns a new instance of 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

- (Boolean) blank?

Returns:

  • (Boolean)


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

def blank?
  false
end

- (Object) render(context)



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