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)


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

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:



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/garner/mixins/rack.rb', line 21

def garner(&block)
  identity = Garner::Cache::Identity.new
  Garner.config.rack_context_key_strategies.each do |strategy|
    identity = strategy.apply(identity, self)
  end

  unless cache_enabled?
    identity.options({ :force_miss => true })
  end

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