class Dhall::Rails::Cache
Public Class Methods
new(cache=::Rails.cache)
click to toggle source
# File lib/dhall/rails/cache.rb, line 6 def initialize(cache=::Rails.cache) @cache = cache @ram = Resolvers::RamCache.new end
Public Instance Methods
fetch(key) { || ... }
click to toggle source
# File lib/dhall/rails/cache.rb, line 11 def fetch(key, &block) Promise.resolve(nil).then do if key.is_a?(String) && key.start_with?("sha256:") unless (in_cache = @cache.read(key)).nil? return in_cache end yield.then { |result| result.tap { @cache.write(key, result) } } else @ram.fetch(key, &block) end end end