module ForemanTasksCore::SettingsLoader
Public Class Methods
name_to_settings()
click to toggle source
# File lib/foreman_tasks_core/settings_loader.rb, line 7 def self.name_to_settings @name_to_settings ||= {} end
register_settings(names, object)
click to toggle source
# 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()
click to toggle source
# File lib/foreman_tasks_core/settings_loader.rb, line 11 def self.settings_keys @settings_keys ||= [] end
settings_registered?(name)
click to toggle source
# File lib/foreman_tasks_core/settings_loader.rb, line 15 def self.settings_registered?(name) name_to_settings.key?(name) end
settings_registry()
click to toggle source
# File lib/foreman_tasks_core/settings_loader.rb, line 3 def self.settings_registry @settings_registry ||= {} end
setup_settings(name, settings)
click to toggle source
# 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
Public Instance Methods
initialize_settings(settings = {})
click to toggle source
# 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 = {})
click to toggle source
# File lib/foreman_tasks_core/settings_loader.rb, line 34 def register_settings(names, defaults = {}) SettingsLoader.register_settings(names, self) @defaults = defaults end
settings()
click to toggle source
# File lib/foreman_tasks_core/settings_loader.rb, line 44 def settings raise "Settings for #{self} not initalized" unless @settings @settings end
validate_settings!()
click to toggle source
# 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