class PactBroker::Api::Decorators::Configuration

Attributes

overrides[R]

Public Class Methods

default_configuration() click to toggle source
# File lib/pact_broker/api/decorators/configuration.rb, line 42
def self.default_configuration
  Configuration.new
end
new(overrides = {}) click to toggle source
# File lib/pact_broker/api/decorators/configuration.rb, line 9
def initialize(overrides = {})
  @overrides = overrides
end

Public Instance Methods

class_for(name) click to toggle source
# File lib/pact_broker/api/decorators/configuration.rb, line 13
def class_for(name)
  if overrides[name].is_a?(String)
    Object.const_get(overrides[name])
  elsif overrides[name].is_a?(Class)
    overrides[name]
  else
    Object.const_get("PactBroker::Api::Decorators::#{name.to_s.camelcase(true)}")
  end
end
validation_error_decorator_class_for(errors_class, accept_header) click to toggle source

@param [Class] errors_class will be a Hash class or Dry::Validation::MessageSet class @param [String] accept_header if this includes application/problem+json we render a application/problem+json response @return [Class] the decorator class

# File lib/pact_broker/api/decorators/configuration.rb, line 26
def validation_error_decorator_class_for(errors_class, accept_header)
  if accept_header&.include?("application/problem+json")
    if errors_class == Dry::Validation::MessageSet
      PactBroker::Api::Decorators::DryValidationErrorsProblemJsonDecorator
    else
      PactBroker::Api::Decorators::ValidationErrorsProblemJsonDecorator
    end
  else
    if errors_class == Dry::Validation::MessageSet
      PactBroker::Api::Decorators::DryValidationErrorsDecorator
    else
      PactBroker::Api::Decorators::ValidationErrorsDecorator
    end
  end
end