Class: Liquid2::AssignTag

Inherits:
Tag
  • Object
show all
Defined in:
lib/liquid2/nodes/tags/assign.rb

Overview

The standard assign tag.

Instance Attribute Summary

Attributes inherited from Node

#blank, #token

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Tag

#name

Methods inherited from Node

#block_scope, #children, #partial_scope, #render_with_disabled_tag_check

Constructor Details

#initialize(token, name, expression) ⇒ AssignTag

Returns a new instance of AssignTag.

Parameters:



22
23
24
25
26
# File 'lib/liquid2/nodes/tags/assign.rb', line 22

def initialize(token, name, expression)
  super(token)
  @name = name
  @expression = expression
end

Class Method Details

.parse(token, parser) ⇒ AssignTag

Parameters:

Returns:



10
11
12
13
14
15
16
17
# File 'lib/liquid2/nodes/tags/assign.rb', line 10

def self.parse(token, parser)
  name = parser.parse_identifier(trailing_question: false)
  parser.eat(:token_assign, "malformed identifier or missing assignment operator")
  expression = parser.parse_filtered_expression
  parser.carry_whitespace_control
  parser.eat(:token_tag_end)
  new(token, name, expression)
end

Instance Method Details

#expressionsObject



32
# File 'lib/liquid2/nodes/tags/assign.rb', line 32

def expressions = [@expression]

#render(context, _buffer) ⇒ Object



28
29
30
# File 'lib/liquid2/nodes/tags/assign.rb', line 28

def render(context, _buffer)
  context.assign(@name.name, context.evaluate(@expression))
end

#template_scopeObject



33
# File 'lib/liquid2/nodes/tags/assign.rb', line 33

def template_scope = [@name]