lib/dentaku/calculator.rb in dentaku-3.3.1 vs lib/dentaku/calculator.rb in dentaku-3.3.2
- old
+ new
@@ -7,11 +7,12 @@
require 'dentaku/token'
module Dentaku
class Calculator
include StringCasing
- attr_reader :result, :memory, :tokenizer, :case_sensitive, :aliases, :nested_data_support
+ attr_reader :result, :memory, :tokenizer, :case_sensitive, :aliases,
+ :nested_data_support, :ast_cache
def initialize(options = {})
clear
@tokenizer = Tokenizer.new
@case_sensitive = options.delete(:case_sensitive)
@@ -93,9 +94,13 @@
tokens = tokenizer.tokenize(expression, options)
Parser.new(tokens, options).parse.tap do |node|
@ast_cache[expression] = node if cache_ast?
end
}
+ end
+
+ def load_cache(ast_cache)
+ @ast_cache = ast_cache
end
def clear_cache(pattern = :all)
case pattern
when :all