class ActiveRecord::ConnectionAdapters::QueryCache::Store
:nodoc:
def [](key)
def [](key) check_version return unless @enabled if entry = @map.delete(key) @map[key] = entry end end
def check_version
def check_version if @current_version != @version.value @map.clear @current_version = @version.value end end
def clear
def clear @map.clear self end
def compute_if_absent(key)
def compute_if_absent(key) check_version return yield unless @enabled if entry = @map.delete(key) return @map[key] = entry end if @max_size && @map.size >= @max_size @map.shift # evict the oldest entry end @map[key] ||= yield end
def empty?
def empty? check_version @map.empty? end
def initialize(version, max_size)
def initialize(version, max_size) @version = version @current_version = version.value @map = {} @max_size = max_size @enabled = false @dirties = true end
def size
def size check_version @map.size end