Class: Arrays::ArrayInsertTag

Inherits:
Liquid::Tag
  • Object
show all
Includes:
ErrorHandler
Defined in:
lib/liquid-arrays/array_insert_tag.rb

Instance Method Summary collapse

Methods included from ErrorHandler

#catch, #handle

Instance Method Details

#parse(tokens) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/liquid-arrays/array_insert_tag.rb', line 5

def parse(tokens)
  super
  catch do
    parser = AttributeParser.new(@parse_context, @markup)
    @array_name = parser.consume_attribute('array', :id)
    @index = parser.consume_required_attribute('index', :integer)
    @value = parser.consume_required_attribute('value')
    parser.finish
  end
end

#render(context) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/liquid-arrays/array_insert_tag.rb', line 16

def render(context)
  array = ArrayHelper.get_array(context, @array_name, false)
  index = @index.render(context)
  if !array.nil? && index.is_a?(Integer) && index >= 0 && index <= array.length
    array.insert(index, @value.render(context))
  end
  ''
end