Module: Garner::Mixins::Rack

Defined in:
lib/garner/mixins/rack.rb

Instance Method Summary collapse

Instance Method Details

#cache_enabled?Boolean

Override this method to conditionally disable the cache.

Returns:

  • (Boolean)


9
10
11
# File 'lib/garner/mixins/rack.rb', line 9

def cache_enabled?
  true
end

#garner(&block) ⇒ Garner::Cache::Identity

Instantiate a context-appropriate cache identity.

Examples:

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

Returns:



20
21
22
23
24
25
26
27
28
29
# 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