diff --git a/lib/liquid/range_lookup.rb b/lib/liquid/range_lookup.rb index 8da022dc..ae6fc28c 100644 --- a/lib/liquid/range_lookup.rb +++ b/lib/liquid/range_lookup.rb @@ -16,8 +16,8 @@ module Liquid end def evaluate(context) - start_int = Utils.to_integer(context.evaluate(@start_obj)) - end_int = Utils.to_integer(context.evaluate(@end_obj)) + start_int = Utils.to_integer(context.evaluate(@start_obj), true) + end_int = Utils.to_integer(context.evaluate(@end_obj), true) start_int..end_int end end diff --git a/lib/liquid/utils.rb b/lib/liquid/utils.rb index 7725ff87..490b0494 100644 --- a/lib/liquid/utils.rb +++ b/lib/liquid/utils.rb @@ -33,13 +33,14 @@ module Liquid segments end - def self.to_integer(num) + def self.to_integer(num, accept_invalid = false) return num if num.is_a?(Integer) num = num.to_s begin Integer(num) rescue ::ArgumentError - raise Liquid::ArgumentError, "invalid integer" + raise Liquid::ArgumentError, "invalid integer" unless accept_invalid + 0 end end