Sha256: afba2d5c21eead9f94e72766361e7cbe32c884b54b46dbfb4688cf63de06864b
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
module RailsSettings class Base < Settings def rewrite_cache self.class.configuration.cache_store.fetch(cache_key, value) end def expire_cache self.class.configuration.cache_store.delete(cache_key) end def cache_key self.class.cache_key(var, thing) end class << self attr_accessor :configuration def configure self.configuration ||= Configuration.new yield(configuration) end 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.to_s scope.join("/") end def [](key) return super(key) unless rails_initialized? val = cache_store.fetch(cache_key(key, @object)) do super(key) end val end # set a setting value by [] notation def []=(var_name, value) super cache_store.write(cache_key(var_name, @object), value) value end def cache_store @cache_store ||= RailsSettings::Base.configuration.cache_store end class Configuration attr_accessor :cache_store end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jdx-rails-settings-0.7.4 | lib/rails-settings/base.rb |