Sha256: b0e9583ce04849b32de17504a5b04ead3919dcc1e79ae748a28f3410ba946d62

Contents?: true

Size: 1.46 KB

Versions: 23

Compression:

Stored size: 1.46 KB

Contents

module PactBroker

  def self.configuration
    @@configuration ||= Configuration.default_configuration
  end

  class Configuration

    attr_accessor :log_dir, :database_connection, :auto_migrate_db, :use_hal_browser, :html_pact_renderer
    attr_accessor :validate_database_connection_config, :enable_diagnostic_endpoints, :version_parser
    attr_accessor :use_case_sensitive_resource_names
    attr_writer :logger

    def logger
      @logger ||= create_logger log_path
    end

    def self.default_configuration
      require 'pact_broker/versions/parse_semantic_version'
      config = Configuration.new
      config.log_dir = File.expand_path("./log")
      config.auto_migrate_db = true
      config.use_hal_browser = true
      config.validate_database_connection_config = true
      config.enable_diagnostic_endpoints = true
      config.use_case_sensitive_resource_names = true
      config.html_pact_renderer = default_html_pact_render
      config.version_parser = PactBroker::Versions::ParseSemanticVersion
      config
    end

    def self.default_html_pact_render
      lambda { |pact|
        require 'pact_broker/api/renderers/html_pact_renderer'
        PactBroker::Api::Renderers::HtmlPactRenderer.call pact
      }
    end

    private

    def create_logger path
      FileUtils::mkdir_p File.dirname(path)
      logger = Logger.new(path)
      logger.level = Logger::DEBUG
      logger
    end

    def log_path
      log_dir + "/pact_broker.log"
    end

  end

end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
pact_broker-2.0.0.beta.6 lib/pact_broker/configuration.rb
pact_broker-2.0.0.beta.5 lib/pact_broker/configuration.rb
pact_broker-1.17.2 lib/pact_broker/configuration.rb
pact_broker-1.17.1 lib/pact_broker/configuration.rb
pact_broker-2.0.0.beta.4 lib/pact_broker/configuration.rb
pact_broker-2.0.0.beta.3 lib/pact_broker/configuration.rb
pact_broker-2.0.0.beta.2 lib/pact_broker/configuration.rb
pact_broker-2.0.0.beta.1 lib/pact_broker/configuration.rb
pact_broker-1.17.0 lib/pact_broker/configuration.rb
pact_broker-1.16.0 lib/pact_broker/configuration.rb
pact_broker-1.15.0 lib/pact_broker/configuration.rb
pact_broker-1.14.0 lib/pact_broker/configuration.rb
pact_broker-1.13.0 lib/pact_broker/configuration.rb
pact_broker-1.12.0 lib/pact_broker/configuration.rb
pact_broker-1.11.2 lib/pact_broker/configuration.rb
pact_broker-1.11.1 lib/pact_broker/configuration.rb
pact_broker-1.11.0 lib/pact_broker/configuration.rb
pact_broker-1.10.0 lib/pact_broker/configuration.rb
pact_broker-1.9.3 lib/pact_broker/configuration.rb
pact_broker-1.9.2 lib/pact_broker/configuration.rb