Module: AbAdmin::Models::Settings::ClassMethods

Defined in:
lib/ab_admin/models/settings.rb

Instance Method Summary collapse

Instance Method Details

#dataObject



32
33
34
# File 'lib/ab_admin/models/settings.rb', line 32

def data
  self.data_cache ||= read_data
end

#editable_dataObject



46
47
48
# File 'lib/ab_admin/models/settings.rb', line 46

def editable_data
  YAML.safe_load(File.read(editable_path))
end

#editable_pathObject



55
56
57
# File 'lib/ab_admin/models/settings.rb', line 55

def editable_path
  editable_paths.detect { |path| File.exists?(path) }
end

#load_configObject



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_dataObject



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_dataObject



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