Sha256: 6a42c0310ddf982fe2916b12e3431a8e38da93fe9e15485c7b8da30a2e8cbc7c
Contents?: true
Size: 779 Bytes
Versions: 4
Compression:
Stored size: 779 Bytes
Contents
# frozen_string_literal: true require 'thermos/beverage' require 'thermos/beverage_storage' require 'thermos/dependency' require 'thermos/notifier' require 'thermos/refill_job' require 'thermos/rebuild_cache_job' module Thermos def self.keep_warm(key:, model:, id:, deps: [], lookup_key: nil, &block) fill(key: key, model: model, deps: deps, lookup_key: lookup_key, &block) drink(key: key, id: id) end def self.fill(key:, model:, deps: [], lookup_key: nil, &block) BeverageStorage.instance.add_beverage( Beverage.new(key: key, model: model, deps: deps, action: block, lookup_key: lookup_key) ) end def self.drink(key:, id:) Rails.cache.fetch([key, id]) do BeverageStorage.instance.get_beverage(key).action.call(id) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
thermos-0.3.0 | lib/thermos.rb |
thermos-0.2.1 | lib/thermos.rb |
thermos-0.2.0 | lib/thermos.rb |
thermos-0.1.1 | lib/thermos.rb |