lib/dentaku/calculator.rb in dentaku-3.5.2 vs lib/dentaku/calculator.rb in dentaku-3.5.3
- old
+ new
@@ -61,12 +61,11 @@
return expression.map { |e|
evaluate(e, data, &block)
} if expression.is_a? Array
store(data) do
- node = expression
- node = ast(node) unless node.is_a?(AST::Node)
+ node = ast(expression)
unbound = node.dependencies(memory)
unless unbound.empty?
raise UnboundVariableError.new(unbound),
"no value provided for variables: #{unbound.uniq.join(', ')}"
end
@@ -94,9 +93,10 @@
ast(expression).dependencies(test_context)
end
end
def ast(expression)
+ return expression if expression.is_a?(AST::Node)
return expression.map { |e| ast(e) } if expression.is_a? Array
@ast_cache.fetch(expression) {
options = {
aliases: aliases,