class PactBroker::Config::Save

Attributes

configuration[R]
repository[R]
setting_names[R]

Public Class Methods

call(configuration, setting_names) click to toggle source
# File lib/pact_broker/config/save.rb, line 12
def self.call configuration, setting_names
  new(configuration, setting_names).call
end
new(configuration, setting_names) click to toggle source
# File lib/pact_broker/config/save.rb, line 16
def initialize configuration, setting_names
  @configuration = configuration
  @setting_names = setting_names
  @repository = Config::Repository.new
end

Public Instance Methods

call() click to toggle source
# File lib/pact_broker/config/save.rb, line 22
def call
  setting_names.each do | setting_name |
    setting_value = get_value(setting_name)
    if repository.class_supported?(setting_value)
      create_or_update_setting(setting_name, setting_value)
    else
      logger.warn "Could not save configuration setting \"#{setting_name}\" to database as the class #{setting_value.class} is not supported."
    end
  end
end

Private Instance Methods

create_or_update_setting(setting_name, setting_value) click to toggle source
# File lib/pact_broker/config/save.rb, line 37
def create_or_update_setting setting_name, setting_value
  repository.create_or_update_setting(setting_name, setting_value)
end
get_value(setting_name) click to toggle source
# File lib/pact_broker/config/save.rb, line 41
def get_value setting_name
  configuration.send(setting_name)
end