Sha256: 33036c7804538fdad2ade77671676fbc18a3f2a265b767c378ec4d78dda5c6ce

Contents?: true

Size: 1.25 KB

Versions: 48

Compression:

Stored size: 1.25 KB

Contents

require "pact_broker/configuration"
require "pact_broker/logging"
require "pact_broker/config/setting"
require "pact_broker/config/repository"

module PactBroker
  module Config
    class Save

      include PactBroker::Logging

      def self.call configuration, setting_names
        new(configuration, setting_names).call
      end

      def initialize configuration, setting_names
        @configuration = configuration
        @setting_names = setting_names
        @repository = Config::Repository.new
      end

      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

      attr_reader :configuration, :setting_names, :repository

      def create_or_update_setting setting_name, setting_value
        repository.create_or_update_setting(setting_name, setting_value)
      end

      def get_value setting_name
        configuration.send(setting_name)
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
pact_broker-2.114.0 lib/pact_broker/config/save.rb
pact_broker-2.113.2 lib/pact_broker/config/save.rb
pact_broker-2.113.1 lib/pact_broker/config/save.rb
pact_broker-2.113.0 lib/pact_broker/config/save.rb
pact_broker-2.112.0 lib/pact_broker/config/save.rb
pact_broker-2.111.0 lib/pact_broker/config/save.rb
pact_broker-2.109.1 lib/pact_broker/config/save.rb
pact_broker-2.109.0 lib/pact_broker/config/save.rb
pact_broker-2.108.0 lib/pact_broker/config/save.rb
pact_broker-2.107.1 lib/pact_broker/config/save.rb
pact_broker-2.107.0 lib/pact_broker/config/save.rb
pact_broker-2.107.0.beta.1 lib/pact_broker/config/save.rb
pact_broker-2.106.0 lib/pact_broker/config/save.rb
pact_broker-2.105.0 lib/pact_broker/config/save.rb
pact_broker-2.104.0 lib/pact_broker/config/save.rb
pact_broker-2.103.0 lib/pact_broker/config/save.rb
pact_broker-2.102.2 lib/pact_broker/config/save.rb
pact_broker-2.102.1 lib/pact_broker/config/save.rb
pact_broker-2.102.0 lib/pact_broker/config/save.rb
pact_broker-2.101.0 lib/pact_broker/config/save.rb