Class: RailsSettings::Base
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- RailsSettings::Base
- Defined in:
- lib/rails-settings/base.rb
Defined Under Namespace
Classes: SettingNotFound
Constant Summary collapse
- SEPARATOR_REGEXP =
/[\n,]+/
Class Method Summary collapse
- .cache_key ⇒ Object
- .cache_prefix(&block) ⇒ Object
- .clear_cache ⇒ Object
- .field(key, **opts) ⇒ Object
Instance Method Summary collapse
- #clear_cache ⇒ Object
-
#value ⇒ Object
get the value field, YAML decoded.
-
#value=(new_value) ⇒ Object
set the value field, YAML encoded.
Class Method Details
.cache_key ⇒ Object
40 41 42 43 44 |
# File 'lib/rails-settings/base.rb', line 40 def cache_key scope = ["rails-settings-cached"] scope << @cache_prefix.call if @cache_prefix scope.join("/") end |
.cache_prefix(&block) ⇒ Object
36 37 38 |
# File 'lib/rails-settings/base.rb', line 36 def cache_prefix(&block) @cache_prefix = block end |
.clear_cache ⇒ Object
27 28 29 30 |
# File 'lib/rails-settings/base.rb', line 27 def clear_cache RequestStore.store[:rails_settings_all_settings] = nil Rails.cache.delete(self.cache_key) end |
.field(key, **opts) ⇒ Object
32 33 34 |
# File 'lib/rails-settings/base.rb', line 32 def field(key, **opts) _define_field(key, default: opts[:default], type: opts[:type], readonly: opts[:readonly], separator: opts[:separator]) end |
Instance Method Details
#clear_cache ⇒ Object
22 23 24 |
# File 'lib/rails-settings/base.rb', line 22 def clear_cache self.class.clear_cache end |
#value ⇒ Object
get the value field, YAML decoded
13 14 15 |
# File 'lib/rails-settings/base.rb', line 13 def value YAML.load(self[:value]) if self[:value].present? end |
#value=(new_value) ⇒ Object
set the value field, YAML encoded
18 19 20 |
# File 'lib/rails-settings/base.rb', line 18 def value=(new_value) self[:value] = new_value.to_yaml end |