Class: Erector::Cache
- Inherits:
-
Object
- Object
- Erector::Cache
- Includes:
- Singleton
- Defined in:
- lib/erector/cache.rb
Constant Summary collapse
- CACHE_NAMESPACE =
'erector'
Instance Method Summary collapse
Instance Method Details
#[](*args) ⇒ Object
13 14 15 |
# File 'lib/erector/cache.rb', line 13 def [](*args) ::Rails.cache.read(transform_key(args)) end |
#[]=(*args) ⇒ Object
8 9 10 11 |
# File 'lib/erector/cache.rb', line 8 def []=(*args) value = args.pop ::Rails.cache.write(transform_key(args), value.to_s) end |
#delete(*args) ⇒ Object
17 18 19 |
# File 'lib/erector/cache.rb', line 17 def delete(*args) ::Rails.cache.delete(transform_key(args)) end |
#transform_key(args) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/erector/cache.rb', line 21 def transform_key(args) key = args.reject { |x| x.nil? } # If we're on Rails 3, coerce cache keys to array. # See changes to the retrieve_cache_key method here: # http://apidock.com/rails/v4.0.2/ActiveSupport/Cache/retrieve_cache_key/class if Gem::Version.new(::Rails.version) < Gem::Version.new('4.0.0') key = key.map do |x| if !x.respond_to?(:cache_key) && !x.is_a?(Array) && x.respond_to?(:to_a) x.to_a else x end end end ActiveSupport::Cache.(key, CACHE_NAMESPACE) end |