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