Class: RailsSettings::Base

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/rails-settings/base.rb

Defined Under Namespace

Classes: SettingNotFound

Constant Summary collapse

SEPARATOR_REGEXP =
/[\n,]+/

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.cache_keyObject



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_cacheObject



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_cacheObject



22
23
24
# File 'lib/rails-settings/base.rb', line 22

def clear_cache
  self.class.clear_cache
end

#valueObject

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