mirror of
https://github.com/kemko/liquid.git
synced 2026-01-06 10:15:40 +03:00
Raise Liquid::ArgumentError on invalid range
This commit is contained in:
@@ -12,7 +12,18 @@ module Liquid
|
||||
if start_obj.respond_to?(:evaluate) || end_obj.respond_to?(:evaluate)
|
||||
new(start_obj, end_obj)
|
||||
else
|
||||
start_obj.to_i..end_obj.to_i
|
||||
to_integer(start_obj)..to_integer(end_obj)
|
||||
end
|
||||
end
|
||||
|
||||
def self.to_integer(input)
|
||||
case input
|
||||
when Integer
|
||||
input
|
||||
when NilClass, String, Float
|
||||
input.to_i
|
||||
else
|
||||
Utils.to_integer(input)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -24,26 +35,13 @@ module Liquid
|
||||
end
|
||||
|
||||
def evaluate(context)
|
||||
start_int = to_integer(context.evaluate(@start_expr))
|
||||
end_int = to_integer(context.evaluate(@end_expr))
|
||||
start_int = self.class.to_integer(context.evaluate(@start_expr))
|
||||
end_int = self.class.to_integer(context.evaluate(@end_expr))
|
||||
start_int..end_int
|
||||
end
|
||||
|
||||
def ==(other)
|
||||
self.class == other.class && start_expr == other.start_expr && end_expr == other.end_expr
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def to_integer(input)
|
||||
case input
|
||||
when Integer
|
||||
input
|
||||
when NilClass, String
|
||||
input.to_i
|
||||
else
|
||||
Utils.to_integer(input)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user