Sha256: 690f23dcdae1ef4efa598670a196144b222aa8a1e37ae9bbfc98c2c4be278da9

Contents?: true

Size: 678 Bytes

Versions: 4

Compression:

Stored size: 678 Bytes

Contents

require 'config/validation/error'

module Config
  module Validation
    module Validate
      def validate!
        return unless Config.validation_contract || Config.schema

        Config::DryValidationRequirements.load_dry_validation!

        validate_using!(Config.validation_contract)
        validate_using!(Config.schema)
      end

      private

      def validate_using!(validator)
        if validator
          result = validator.call(to_hash)

          return if result.success?

          error = Config::Validation::Error.format(result)
          raise Config::Validation::Error, "Config validation failed:\n\n#{error}"
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
config-5.5.2 lib/config/validation/validate.rb
config-5.5.1 lib/config/validation/validate.rb
config-5.4.0 lib/config/validation/validate.rb
config-5.3.0 lib/config/validation/validate.rb