Class: ActiveRecord::ConnectionAdapters::QueryCache::Store
Do not use. This class is for internal use only.
Relationships & Source Files | |
Inherits: | Object |
Defined in: | activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb |
Class Method Summary
- .new(max_size) ⇒ Store constructor
Instance Attribute Summary
-
#dirties?
rw
Alias for #dirties.
- #empty? ⇒ Boolean readonly
-
#enabled?
rw
Alias for #enabled.
Instance Method Summary
Constructor Details
.new(max_size) ⇒ Store
# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 38
def initialize(max_size) @map = {} @max_size = max_size @enabled = false @dirties = true end
Instance Attribute Details
#dirties? (rw)
Alias for #dirties.
# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 36
alias_method :dirties?, :dirties
#empty? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 49
def empty? @map.empty? end
#enabled? (rw)
Alias for #enabled.
# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 35
alias_method :enabled?, :enabled
Instance Method Details
#[](key)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 53
def [](key) return unless @enabled if entry = @map.delete(key) @map[key] = entry end end
#clear
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 75
def clear @map.clear self end
#compute_if_absent(key)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 61
def compute_if_absent(key) 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
#dirties (rw) Also known as: #dirties?
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 34
attr_accessor :enabled, :dirties
#enabled (rw) Also known as: #enabled?
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 34
attr_accessor :enabled, :dirties
#size
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb', line 45
def size @map.size end