Class: Liquid2::RangeExpression

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

Overview

A range expression.

Instance Attribute Summary

Attributes inherited from Expression

#token

Instance Method Summary collapse

Methods inherited from Expression

#scope

Constructor Details

#initialize(token, start, stop) ⇒ RangeExpression

Returns a new instance of RangeExpression.

Parameters:



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

def initialize(token, start, stop)
  super(token)
  @start = start
  @stop = stop
end

Instance Method Details

#childrenObject



26
# File 'lib/liquid2/expressions/range.rb', line 26

def children = [@start, @stop]

#evaluate(context) ⇒ Object



16
17
18
19
20
# File 'lib/liquid2/expressions/range.rb', line 16

def evaluate(context)
  from = Liquid2.to_liquid_int(context.evaluate(@start))
  to = Liquid2.to_liquid_int(context.evaluate(@stop))
  (from..to)
end

#to_sObject



22
23
24
# File 'lib/liquid2/expressions/range.rb', line 22

def to_s
  "(#{@start}..#{@stop})"
end