Sha256: 12e31fd1cf26189e30e8654ca40f58a465c0e9c8b84b3748629873eaa4890a01

Contents?: true

Size: 1008 Bytes

Versions: 2

Compression:

Stored size: 1008 Bytes

Contents

require 'dry/core/extensions'

require 'dry/schema/constants'
require 'dry/schema/dsl'
require 'dry/schema/params'
require 'dry/schema/json'

module Dry
  module Schema
    extend Dry::Core::Extensions

    # Define a schema
    #
    # @return [Processor]
    #
    # @api public
    def self.define(**options, &block)
      DSL.new(options, &block).call
    end

    # Define a param schema
    #
    # @return [Params]
    #
    # @api public
    def self.Params(**options, &block)
      define(**options, processor_type: Params, &block)
    end
    singleton_class.send(:alias_method, :Form, :Params)

    # Define a JSON schema
    #
    # @return [JSON]
    #
    # @api public
    def self.JSON(**options, &block)
      define(**options, processor_type: JSON, &block)
    end

    # Return configured paths to message files
    #
    # @return [Array<String>]
    #
    # @api public
    def self.messages_paths
      Messages::Abstract.config.paths
    end
  end
end

require 'dry/schema/extensions'

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dry-schema-0.2.0 lib/dry/schema.rb
dry-schema-0.1.1 lib/dry/schema.rb