Sha256: 8830e496e4cbb52d216f7caf600f11e3b2b3b3938b16340fe7b2101f238db8ac

Contents?: true

Size: 1.19 KB

Versions: 11

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

require "dry/validation/constants"
require "dry/validation/contract"
require "dry/validation/macros"

# Main namespace
#
# @api public
module Dry
  # Main library namespace
  #
  # @api public
  module Validation
    extend Dry::Core::Extensions
    extend Macros::Registrar

    register_extension(:monads) do
      require "dry/validation/extensions/monads"
    end

    register_extension(:hints) do
      require "dry/validation/extensions/hints"
    end

    register_extension(:predicates_as_macros) do
      require "dry/validation/extensions/predicates_as_macros"
    end

    # Define a contract and build its instance
    #
    # @example
    #   my_contract = Dry::Validation.Contract do
    #     params do
    #       required(:name).filled(:string)
    #     end
    #   end
    #
    #   my_contract.call(name: "Jane")
    #
    # @param [Hash] options Contract options
    #
    # @see Contract
    #
    # @return [Contract]
    #
    # @api public
    #
    def self.Contract(options = EMPTY_HASH, &block)
      Contract.build(options, &block)
    end

    # This is needed by Macros::Registrar
    #
    # @api private
    def self.macros
      Macros
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
dry-validation-1.8.1 lib/dry/validation.rb
dry-validation-1.8.0 lib/dry/validation.rb
dry-validation-1.7.0 lib/dry/validation.rb
dry-validation-1.6.0 lib/dry/validation.rb
dry-validation-1.5.6 lib/dry/validation.rb
dry-validation-1.5.5 lib/dry/validation.rb
dry-validation-1.5.4 lib/dry/validation.rb
dry-validation-1.5.3 lib/dry/validation.rb
dry-validation-1.5.2 lib/dry/validation.rb
dry-validation-1.5.1 lib/dry/validation.rb
dry-validation-1.5.0 lib/dry/validation.rb