Module: ActiveSupport::Cache::Strategy::LocalCache

Defined in:
lib/active_support/cache/strategy/local_cache.rb,
lib/active_support/cache/strategy/local_cache_middleware.rb

Overview

Caches that implement LocalCache will be backed by an in-memory cache for the duration of a block. Repeated calls to the cache for the same key will hit the in-memory cache for faster access.

Defined Under Namespace

Classes: LocalCacheRegistry, LocalStore, Middleware

Instance Method Summary collapse

Instance Method Details

#cleanup(options = nil) ⇒ Object

:nodoc:


82
83
84
85
# File 'lib/active_support/cache/strategy/local_cache.rb', line 82

def cleanup(options = nil) # :nodoc:
  local_cache.clear(options) if local_cache
  super
end

#clear(options = nil) ⇒ Object

:nodoc:


77
78
79
80
# File 'lib/active_support/cache/strategy/local_cache.rb', line 77

def clear(options = nil) # :nodoc:
  local_cache.clear(options) if local_cache
  super
end

#decrement(name, amount = 1, options = nil) ⇒ Object

:nodoc:


93
94
95
96
97
# File 'lib/active_support/cache/strategy/local_cache.rb', line 93

def decrement(name, amount = 1, options = nil) # :nodoc:
  value = bypass_local_cache{super}
  set_cache_value(value, name, amount, options)
  value
end

#increment(name, amount = 1, options = nil) ⇒ Object

:nodoc:


87
88
89
90
91
# File 'lib/active_support/cache/strategy/local_cache.rb', line 87

def increment(name, amount = 1, options = nil) # :nodoc:
  value = bypass_local_cache{super}
  set_cache_value(value, name, amount, options)
  value
end

#middlewareObject

Middleware class can be inserted as a Rack handler to be local cache for the duration of request.


71
72
73
74
75
# File 'lib/active_support/cache/strategy/local_cache.rb', line 71

def middleware
  @middleware ||= Middleware.new(
    "ActiveSupport::Cache::Strategy::LocalCache",
    local_cache_key)
end

#with_local_cacheObject

Use a local cache for the duration of block.


66
67
68
# File 'lib/active_support/cache/strategy/local_cache.rb', line 66

def with_local_cache
  use_temporary_local_cache(LocalStore.new) { yield }
end