Sha256: 5d245350ef165d1f7432b1df365b62f48efa6b3d16eeee8b7447cee8507a899f

Contents?: true

Size: 801 Bytes

Versions: 8

Compression:

Stored size: 801 Bytes

Contents

require "bigdecimal"
require "dentaku/calculator"
require "dentaku/version"

module Dentaku
  @enable_ast_caching = false
  @enable_dependency_order_caching = false

  def self.evaluate(expression, data={})
    calculator.evaluate(expression, data)
  end

  def self.enable_caching!
    enable_ast_cache!
    enable_dependency_order_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

  private

  def self.calculator
    @calculator ||= Dentaku::Calculator.new
  end
end

def Dentaku(expression, data={})
  Dentaku.evaluate(expression, data)
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
dentaku-3.0.0 lib/dentaku.rb
dentaku-2.0.11 lib/dentaku.rb
dentaku-2.0.10 lib/dentaku.rb
dentaku-2.0.9 lib/dentaku.rb
dentaku-2.0.8 lib/dentaku.rb
dentaku-2.0.7 lib/dentaku.rb
dentaku-2.0.6 lib/dentaku.rb
dentaku-2.0.5 lib/dentaku.rb