Return the frozen object with the given pk, or nil if no such object exists in the cache, without issuing a database query.
# File lib/sequel/plugins/static_cache.rb, line 83 83: def primary_key_lookup(pk) 84: cache[pk] 85: end
An array of all of the model’s frozen instances, without issuing a database query.
# File lib/sequel/plugins/static_cache.rb, line 34 34: def all 35: @all.dup 36: end
Return the frozen object with the given pk, or nil if no such object exists in the cache, without issuing a database query.
# File lib/sequel/plugins/static_cache.rb, line 40 40: def cache_get_pk(pk) 41: cache[pk] 42: end
Yield each of the model’s frozen instances to the block, without issuing a database query.
# File lib/sequel/plugins/static_cache.rb, line 46 46: def each(&block) 47: @all.each(&block) 48: end
If no arguments are given, yield each of the model’s frozen instances to the block. and return a new array, without issuing a database query. If any arguments are given, use the default Sequel behavior.
# File lib/sequel/plugins/static_cache.rb, line 53 53: def map(*a) 54: if a.empty? 55: @all.map(&(Proc.new if block_given?)) 56: else 57: super 58: end 59: end
Reload the cache when the dataset changes.
# File lib/sequel/plugins/static_cache.rb, line 62 62: def set_dataset(*) 63: s = super 64: load_cache 65: s 66: end
If no arguments are given, yield an identity map for the model with frozen primary keys and instances, without issuing a database query. If any arguments are given, use the default Sequel behavior.
# File lib/sequel/plugins/static_cache.rb, line 71 71: def to_hash(*a) 72: if a.empty? 73: cache.dup 74: else 75: super 76: end 77: end
Reload the cache for this model by retrieving all of the instances in the dataset freezing them, and populating the cached array and hash.
# File lib/sequel/plugins/static_cache.rb, line 89 89: def load_cache 90: a = dataset.all 91: h = {} 92: a.each{|o| h[o.pk.freeze] = o.freeze} 93: @all = a.freeze 94: @cache = h.freeze 95: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.