Sha256: 4e15e62fd78511f4f087f5fd6d5678e8e3f0809d1a7136b1f7ad9082a88f60ae
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
module RailsSettings class CachedSettings < Settings def rewrite_cache Rails.cache.write(cache_key, value) end def expire_cache Rails.cache.delete(cache_key) end def cache_key self.class.cache_key(var, thing) end class << self def cache_prefix(&block) @cache_prefix = block end def cache_key(var_name, scope_object) scope = "rails_settings_cached:" scope << "#{@cache_prefix.call}:" if @cache_prefix scope << "#{scope_object.class.name}-#{scope_object.id}:" if scope_object scope << "#{var_name}" end def [](var_name) value = Rails.cache.fetch(cache_key(var_name, @object)) do super(var_name) end if value.nil? @@defaults[var_name.to_s] if value.nil? else value end end # set a setting value by [] notation def []=(var_name, value) super Rails.cache.write(cache_key(var_name, @object),value) value end def save_default(key, value) return false unless self[key].nil? self[key] = value end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rails-settings-cached-0.5.5 | lib/rails-settings/cached_settings.rb |
rails-settings-cached-0.5.4 | lib/rails-settings/cached_settings.rb |