Class: Liquid2::FilteredExpression

Inherits:
Expression show all
Defined in:
lib/liquid2/expressions/filtered.rb

Overview

A primary expression with optional filters.

Instance Attribute Summary collapse

Attributes inherited from Expression

#token

Instance Method Summary collapse

Methods inherited from Expression

#scope

Constructor Details

#initialize(token, left, filters) ⇒ FilteredExpression

Returns a new instance of FilteredExpression.



10
11
12
13
14
# File 'lib/liquid2/expressions/filtered.rb', line 10

def initialize(token, left, filters)
  super(token)
  @left = left
  @filters = filters
end

Instance Attribute Details

#filtersObject (readonly)

Returns the value of attribute filters.



8
9
10
# File 'lib/liquid2/expressions/filtered.rb', line 8

def filters
  @filters
end

Instance Method Details

#childrenObject



28
# File 'lib/liquid2/expressions/filtered.rb', line 28

def children =[@left, *@filters]

#evaluate(context) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/liquid2/expressions/filtered.rb', line 16

def evaluate(context)
  left = context.evaluate(@left)
  return left if @filters.nil?

  index = 0
  while (filter = (@filters || raise)[index])
    left = filter.evaluate(left, context)
    index += 1
  end
  left
end