Module: Thermos
- Defined in:
- lib/thermos.rb,
lib/thermos/version.rb,
lib/thermos/beverage.rb,
lib/thermos/notifier.rb,
lib/thermos/dependency.rb,
lib/thermos/refill_job.rb,
lib/thermos/beverage_storage.rb,
lib/thermos/rebuild_cache_job.rb
Defined Under Namespace
Modules: Notifier Classes: Beverage, BeverageStorage, Dependency, RebuildCacheJob, RefillJob
Constant Summary collapse
- VERSION =
"1.0.0"
Class Method Summary collapse
- .drink(key:, id:) ⇒ Object
- .fill(key:, model:, deps: [], lookup_key: nil, filter: nil, queue: nil, &block) ⇒ Object
- .keep_warm(key:, model:, id:, deps: [], lookup_key: nil, filter: nil, queue: nil, &block) ⇒ Object
Class Method Details
.drink(key:, id:) ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/thermos.rb', line 55 def self.drink(key:, id:) Rails .cache .fetch([key, id]) do BeverageStorage.instance.get_beverage(key).action.call(id) end end |
.fill(key:, model:, deps: [], lookup_key: nil, filter: nil, queue: nil, &block) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/thermos.rb', line 33 def self.fill( key:, model:, deps: [], lookup_key: nil, filter: nil, queue: nil, &block ) BeverageStorage.instance.add_beverage( Beverage.new( key: key, model: model, deps: deps, action: block, lookup_key: lookup_key, filter: filter, queue: queue, ), ) end |
.keep_warm(key:, model:, id:, deps: [], lookup_key: nil, filter: nil, queue: nil, &block) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/thermos.rb', line 11 def self.keep_warm( key:, model:, id:, deps: [], lookup_key: nil, filter: nil, queue: nil, &block ) fill( key: key, model: model, deps: deps, lookup_key: lookup_key, filter: filter, queue: queue, &block ) drink(key: key, id: id) end |