Module: ForemanTasksCore::SettingsLoader
- Defined in:
- lib/foreman_tasks_core/settings_loader.rb
Class Method Summary collapse
- .name_to_settings ⇒ Object
- .register_settings(names, object) ⇒ Object
- .settings_keys ⇒ Object
- .settings_registered?(name) ⇒ Boolean
- .settings_registry ⇒ Object
- .setup_settings(name, settings) ⇒ Object
Instance Method Summary collapse
- #initialize_settings(settings = {}) ⇒ Object
- #register_settings(names, defaults = {}) ⇒ Object
- #settings ⇒ Object
- #validate_settings! ⇒ Object
Class Method Details
.name_to_settings ⇒ Object
7 8 9 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 7 def self.name_to_settings @name_to_settings ||= {} end |
.register_settings(names, object) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 19 def self.register_settings(names, object) names = [names] unless names.is_a? Array names.each do |name| raise 'settings name has to be a symbol' unless name.is_a? Symbol raise "settings #{name} already registered" if SettingsLoader.settings_registered?(name) name_to_settings[name] = object end settings_registry[names] = object end |
.settings_keys ⇒ Object
11 12 13 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 11 def self.settings_keys @settings_keys ||= [] end |
.settings_registered?(name) ⇒ Boolean
15 16 17 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 15 def self.settings_registered?(name) name_to_settings.key?(name) end |
.settings_registry ⇒ Object
3 4 5 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 3 def self.settings_registry @settings_registry ||= {} end |
.setup_settings(name, settings) ⇒ Object
29 30 31 32 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 29 def self.setup_settings(name, settings) raise "Settings for #{name} were not registered" unless settings_registered?(name) name_to_settings[name].initialize_settings(settings) end |
Instance Method Details
#initialize_settings(settings = {}) ⇒ Object
39 40 41 42 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 39 def initialize_settings(settings = {}) @settings = @defaults.merge(settings) validate_settings! end |
#register_settings(names, defaults = {}) ⇒ Object
34 35 36 37 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 34 def register_settings(names, defaults = {}) SettingsLoader.register_settings(names, self) @defaults = defaults end |
#settings ⇒ Object
44 45 46 47 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 44 def settings raise "Settings for #{self} not initalized" unless @settings @settings end |
#validate_settings! ⇒ Object
49 50 51 |
# File 'lib/foreman_tasks_core/settings_loader.rb', line 49 def validate_settings! raise 'Only symbols expected in keys' unless @settings.keys.all? { |key| key.is_a? Symbol } end |