module Garner::Mixins::Rack

Public Instance Methods

cache_enabled?() click to toggle source

Override this method to conditionally disable the cache.

@return [Boolean]

# File lib/garner/mixins/rack.rb, line 9
def cache_enabled?
  true
end
garner(&block) click to toggle source

Instantiate a context-appropriate cache identity.

@example

garner.bind(current_user) do
  { count: current_user.logins.count }
end

@return [Garner::Cache::Identity] The cache identity.

# File lib/garner/mixins/rack.rb, line 20
def garner(&block)
  identity = Garner::Cache::Identity.new(self)
  Garner.config.rack_context_key_strategies.each do |strategy|
    identity = strategy.apply(identity, self)
  end

  identity = identity.nocache unless cache_enabled?

  block_given? ? identity.fetch(&block) : identity
end