Class: ActsAsCalculator::CalculatorCache

Inherits:
Object
  • Object
show all
Defined in:
lib/acts_as_calculator/calculator_cache.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(functions: FunctionRegistry.default) ⇒ CalculatorCache

Returns a new instance of CalculatorCache.



9
10
11
12
# File 'lib/acts_as_calculator/calculator_cache.rb', line 9

def initialize(functions: FunctionRegistry.default)
  @functions = functions
  @key = :"acts_as_calculator_calculators_#{object_id}"
end

Class Method Details

.defaultObject



5
6
7
# File 'lib/acts_as_calculator/calculator_cache.rb', line 5

def self.default
  @default ||= new
end

Instance Method Details

#clearObject



20
21
22
# File 'lib/acts_as_calculator/calculator_cache.rb', line 20

def clear
  store.clear
end

#fetch(formula_version_id) ⇒ Object

Raises:

  • (ArgumentError)


14
15
16
17
18
# File 'lib/acts_as_calculator/calculator_cache.rb', line 14

def fetch(formula_version_id)
  raise ArgumentError, "a calculator cache key must be a formula_version_id" if formula_version_id.nil?

  store[formula_version_id] ||= BuildCalculator.(functions:)
end