Sha256: ce570032c544ec984581e3ac952f8c0c74a61d68936a36820801df01e1db8777
Contents?: true
Size: 1.36 KB
Versions: 7
Compression:
Stored size: 1.36 KB
Contents
require "bigdecimal" require "concurrent" require "dentaku/calculator" require "dentaku/version" module Dentaku @enable_ast_caching = false @enable_dependency_order_caching = false @enable_identifier_caching = false @aliases = {} def self.evaluate(expression, data = {}, &block) calculator.value.evaluate(expression, data, &block) end def self.evaluate!(expression, data = {}, &block) calculator.value.evaluate!(expression, data, &block) end def self.enable_caching! enable_ast_cache! enable_dependency_order_cache! enable_identifier_cache! end def self.enable_ast_cache! @enable_ast_caching = true end def self.cache_ast? @enable_ast_caching end def self.enable_dependency_order_cache! @enable_dependency_order_caching = true end def self.cache_dependency_order? @enable_dependency_order_caching end def self.enable_identifier_cache! @enable_identifier_caching = true end def self.cache_identifier? @enable_identifier_caching end def self.aliases @aliases end def self.aliases=(hash) @aliases = hash end def self.calculator @calculator ||= Concurrent::ThreadLocalVar.new { Dentaku::Calculator.new } end end def Dentaku(expression, data = {}) Dentaku.evaluate(expression, data) end def Dentaku!(expression, data = {}) Dentaku.evaluate!(expression, data) end
Version data entries
7 entries across 7 versions & 2 rubygems