Class: ActiveSetting::Loader
- Inherits:
-
Object
- Object
- ActiveSetting::Loader
- Defined in:
- lib/active_setting/loader.rb
Class Attribute Summary collapse
Class Method Summary collapse
- .build_hash(filename = nil) ⇒ Object
- .external_settings ⇒ Object
- .load_settings(filename = nil) ⇒ Object
- .register_external_setting(name, attrs) ⇒ Object
Instance Method Summary collapse
- #build_hash ⇒ Object
- #config_filename ⇒ Object
-
#initialize(config_filename = nil) ⇒ Loader
constructor
A new instance of Loader.
- #load_settings ⇒ Object
Constructor Details
#initialize(config_filename = nil) ⇒ Loader
Returns a new instance of Loader.
30 31 32 |
# File 'lib/active_setting/loader.rb', line 30 def initialize(config_filename = nil) @config_filename = config_filename end |
Class Attribute Details
.config_filename ⇒ Object
14 15 16 |
# File 'lib/active_setting/loader.rb', line 14 def config_filename @config_filename || 'settings.yml' end |
Class Method Details
.build_hash(filename = nil) ⇒ Object
10 11 12 |
# File 'lib/active_setting/loader.rb', line 10 def build_hash(filename = nil) new(filename).build_hash end |
.external_settings ⇒ Object
20 21 22 |
# File 'lib/active_setting/loader.rb', line 20 def external_settings @external_settings ||= {} end |
.load_settings(filename = nil) ⇒ Object
6 7 8 |
# File 'lib/active_setting/loader.rb', line 6 def load_settings(filename = nil) new(filename).load_settings end |
.register_external_setting(name, attrs) ⇒ Object
24 25 26 27 |
# File 'lib/active_setting/loader.rb', line 24 def register_external_setting(name, attrs) category ||= external_settings[attrs.fetch(:category, 'External')] ||= {} category[name] = attrs.map.with_object({}) { |(k,v), hash| hash[k.to_s] = v } end |
Instance Method Details
#build_hash ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/active_setting/loader.rb', line 52 def build_hash settings_config.map.with_object({}) do |(category_name, settings), hash| settings.each do |setting_name, values| values ||= {} attrs = values.merge( data_type: values['type'], category: category_name, name: setting_name.to_sym ) hash[setting_name.to_sym] = Setting.new(attrs) end end end |
#config_filename ⇒ Object
34 35 36 |
# File 'lib/active_setting/loader.rb', line 34 def config_filename @config_filename || self.class.config_filename end |
#load_settings ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/active_setting/loader.rb', line 38 def load_settings settings_config.each do |category_name, settings| settings.each do |setting_name, values| values ||= {} attrs = values.merge( data_type: values['type'], category: category_name, name: setting_name ) Setting.register(setting_name.to_sym, attrs) end end end |