module Proxy::Dynflow::SettingsLoader

Public Class Methods

name_to_settings() click to toggle source
# File lib/smart_proxy_dynflow/settings_loader.rb, line 9
def self.name_to_settings
  @name_to_settings ||= {}
end
register_settings(names, object) click to toggle source
# File lib/smart_proxy_dynflow/settings_loader.rb, line 21
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/smart_proxy_dynflow/settings_loader.rb, line 13
def self.settings_keys
  @settings_keys ||= []
end
settings_registered?(name) click to toggle source
# File lib/smart_proxy_dynflow/settings_loader.rb, line 17
def self.settings_registered?(name)
  name_to_settings.key?(name)
end
settings_registry() click to toggle source
# File lib/smart_proxy_dynflow/settings_loader.rb, line 5
def self.settings_registry
  @settings_registry ||= {}
end
setup_settings(name, settings) click to toggle source
# File lib/smart_proxy_dynflow/settings_loader.rb, line 32
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/smart_proxy_dynflow/settings_loader.rb, line 43
def initialize_settings(settings = {})
  @settings = @defaults.merge(settings)
  validate_settings!
end
register_settings(names, defaults = {}) click to toggle source
# File lib/smart_proxy_dynflow/settings_loader.rb, line 38
def register_settings(names, defaults = {})
  SettingsLoader.register_settings(names, self)
  @defaults = defaults
end
settings() click to toggle source
# File lib/smart_proxy_dynflow/settings_loader.rb, line 48
def settings
  raise "Settings for #{self} not initalized" unless @settings

  @settings
end
validate_settings!() click to toggle source
# File lib/smart_proxy_dynflow/settings_loader.rb, line 54
def validate_settings!
  raise 'Only symbols expected in keys' unless @settings.keys.all? { |key| key.is_a? Symbol }
end