Class: Patterns::Calculation

Inherits:
Object
  • Object
show all
Defined in:
lib/patterns/calculation.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Calculation

Returns a new instance of Calculation.



5
6
7
8
# File 'lib/patterns/calculation.rb', line 5

def initialize(*args)
  @options = args.extract_options!
  @subject = args.first
end

Class Method Details

.calculateObject



16
17
18
# File 'lib/patterns/calculation.rb', line 16

def self.result(*args)
  new(*args).cached_result
end

.result(*args) ⇒ Object



10
11
12
# File 'lib/patterns/calculation.rb', line 10

def self.result(*args)
  new(*args).cached_result
end

.result_forObject



15
16
17
# File 'lib/patterns/calculation.rb', line 15

def self.result(*args)
  new(*args).cached_result
end

.set_cache_expiry_every(period) ⇒ Object



19
20
21
# File 'lib/patterns/calculation.rb', line 19

def self.set_cache_expiry_every(period)
  self.cache_expiry_every = period
end

Instance Method Details

#cached_resultObject



23
24
25
26
27
# File 'lib/patterns/calculation.rb', line 23

def cached_result
  Rails.cache.fetch(cache_key, expires_in: cache_expiry_period, force: cache_expiry_period.blank?) do
    result
  end
end