Module: AbAdmin::Models::Settings::ClassMethods
- Defined in:
- lib/ab_admin/models/settings.rb
Instance Method Summary collapse
- #data ⇒ Object
- #editable_data ⇒ Object
- #editable_path ⇒ Object
- #load_config ⇒ Object
- #read_data ⇒ Object
- #reload_data ⇒ Object
- #update(raw_config) ⇒ Object
Instance Method Details
#data ⇒ Object
32 33 34 |
# File 'lib/ab_admin/models/settings.rb', line 32 def data self.data_cache ||= read_data end |
#editable_data ⇒ Object
46 47 48 |
# File 'lib/ab_admin/models/settings.rb', line 46 def editable_data YAML.safe_load(File.read(editable_path)) end |
#editable_path ⇒ Object
55 56 57 |
# File 'lib/ab_admin/models/settings.rb', line 55 def editable_path editable_paths.detect { |path| File.exists?(path) } end |
#load_config ⇒ Object
27 28 29 30 |
# File 'lib/ab_admin/models/settings.rb', line 27 def load_config ActiveSupport::Deprecation.warn('`Settings.load_config` is deprecated, use `Settings.data` instead') data end |
#read_data ⇒ Object
40 41 42 43 44 |
# File 'lib/ab_admin/models/settings.rb', line 40 def read_data paths = base_paths.dup.push(editable_path).compact.find_all { |path| File.exists?(path) } hash = paths.map{|path| YAML.safe_load(File.read(path)) }.inject(&:deep_merge).deep_symbolize_keys SettingsStruct.new(hash) end |
#reload_data ⇒ Object
36 37 38 |
# File 'lib/ab_admin/models/settings.rb', line 36 def reload_data self.data_cache = read_data end |
#update(raw_config) ⇒ Object
50 51 52 53 |
# File 'lib/ab_admin/models/settings.rb', line 50 def update(raw_config) config = YAML.safe_load(YAML.dump(raw_config.to_hash.deep_stringify_keys.deep_transform_values!{|v| YAML.safe_load(v) })) File.write(editable_path, config.to_yaml) end |