Class: Erector::Cache
- Inherits:
-
Object
- Object
- Erector::Cache
- Defined in:
- lib/erector/caching.rb
Instance Method Summary collapse
- #[](klass, params = {}, content_method = nil) ⇒ Object
- #[]=(*args) ⇒ Object
- #delete(klass, params = {}) ⇒ Object
- #delete_all(klass) ⇒ Object
-
#initialize ⇒ Cache
constructor
A new instance of Cache.
-
#key(params) ⇒ Object
convert hash-key to array-key for compatibility with 1.8.6.
- #store_for(klass) ⇒ Object
Constructor Details
#initialize ⇒ Cache
Returns a new instance of Cache.
3 4 5 |
# File 'lib/erector/caching.rb', line 3 def initialize @stores = {} end |
Instance Method Details
#[](klass, params = {}, content_method = nil) ⇒ Object
19 20 21 |
# File 'lib/erector/caching.rb', line 19 def [](klass, params = {}, content_method = nil) store_for(klass)[key(params)][content_method] end |
#[]=(*args) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/erector/caching.rb', line 11 def []=(*args) value = args.pop klass = args.shift params = args.first.is_a?(Hash) ? args.first : {} content_method = args.last.is_a?(Symbol) ? args.last : nil store_for(klass)[key(params)][content_method] = value end |
#delete(klass, params = {}) ⇒ Object
23 24 25 |
# File 'lib/erector/caching.rb', line 23 def delete(klass, params = {}) store_for(klass).delete(key(params)) end |
#delete_all(klass) ⇒ Object
27 28 29 |
# File 'lib/erector/caching.rb', line 27 def delete_all(klass) @stores.delete(klass) end |
#key(params) ⇒ Object
convert hash-key to array-key for compatibility with 1.8.6
32 33 34 |
# File 'lib/erector/caching.rb', line 32 def key(params) params.to_a end |
#store_for(klass) ⇒ Object
7 8 9 |
# File 'lib/erector/caching.rb', line 7 def store_for(klass) @stores[klass] ||= Hash.new {|h,k| h[k] = {}} end |