Separate expression parsing and rendering from Context#resolve.

This commit is contained in:
Dylan Thacker-Smith
2014-08-11 14:15:58 -07:00
parent d5e57a8ea4
commit 2aa9bbbac2
5 changed files with 179 additions and 140 deletions
+22
View File
@@ -0,0 +1,22 @@
module Liquid
class RangeLookup
def self.parse(start_markup, end_markup)
start_obj = Expression.parse(start_markup)
end_obj = Expression.parse(end_markup)
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
end
end
def initialize(start_obj, end_obj)
@start_obj = start_obj
@end_obj = end_obj
end
def evaluate(context)
context.evaluate(@start_obj).to_i..context.evaluate(@end_obj).to_i
end
end
end