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.
Middleware class can be inserted as a Rack handler to be local cache for the duration of request.
# File lib/active_support/cache/strategy/local_cache.rb, line 55 55: def middleware 56: @middleware ||= begin 57: klass = Class.new 58: klass.class_eval( class << self def name "ActiveSupport::Cache::Strategy::LocalCache" end alias :to_s :name end def initialize(app) @app = app end def call(env) Thread.current[:#{thread_local_key}] = LocalStore.new @app.call(env) ensure Thread.current[:#{thread_local_key}] = nil end, __FILE__, __LINE__ + 1) 59: klass 60: end 61: end
Use a local cache for the duration of block.
# File lib/active_support/cache/strategy/local_cache.rb, line 43 43: def with_local_cache 44: save_val = Thread.current[thread_local_key] 45: begin 46: Thread.current[thread_local_key] = LocalStore.new 47: yield 48: ensure 49: Thread.current[thread_local_key] = save_val 50: end 51: end
# File lib/active_support/cache/strategy/local_cache.rb, line 152 152: def bypass_local_cache 153: save_cache = Thread.current[thread_local_key] 154: begin 155: Thread.current[thread_local_key] = nil 156: yield 157: ensure 158: Thread.current[thread_local_key] = save_cache 159: end 160: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.