class PactBroker::Config::Load
Attributes
runtime_configuration[R]
Public Class Methods
call(runtime_configuration)
click to toggle source
# File lib/pact_broker/config/load.rb, line 12 def self.call runtime_configuration new(runtime_configuration).call end
new(runtime_configuration)
click to toggle source
# File lib/pact_broker/config/load.rb, line 16 def initialize runtime_configuration @runtime_configuration = runtime_configuration end
Public Instance Methods
call()
click to toggle source
# File lib/pact_broker/config/load.rb, line 20 def call Setting.each do | setting | set_value_on_configuration setting end end
Private Instance Methods
configuration_attribute_exists?(setting)
click to toggle source
# File lib/pact_broker/config/load.rb, line 30 def configuration_attribute_exists? setting runtime_configuration.respond_to?("#{setting.name}=") end
set_value_on_configuration(setting)
click to toggle source
# File lib/pact_broker/config/load.rb, line 42 def set_value_on_configuration setting if configuration_attribute_exists?(setting) if unset_or_value_from_default?(setting) runtime_configuration.send("#{setting.name}=", setting.value_object) else logger.debug("Ignoring #{setting.name} configuration from database, as it has been set by another source #{setting_source(setting)}") end else logger.warn("Could not load configuration setting \"#{setting.name}\" as there is no matching attribute on the #{runtime_configuration.class} class") end end
setting_source(setting)
click to toggle source
# File lib/pact_broker/config/load.rb, line 38 def setting_source(setting) runtime_configuration.to_source_trace.dig(setting.name, :source) end
unset_or_value_from_default?(setting)
click to toggle source
# File lib/pact_broker/config/load.rb, line 34 def unset_or_value_from_default? setting setting_source(setting).nil? || setting_source(setting)[:type] == :defaults end