lib/dry/schema.rb in dry-schema-0.6.0 vs lib/dry/schema.rb in dry-schema-1.0.0

- old
+ new

@@ -6,34 +6,67 @@ require 'dry/schema/dsl' require 'dry/schema/params' require 'dry/schema/json' module Dry + # Main interface + # + # @api public module Schema extend Dry::Core::Extensions # Define a schema # + # @example + # Dry::Schema.define do + # required(:name).filled(:string) + # required(:age).value(:integer, gt?: 0) + # end + # + # @param [Hash] options + # # @return [Processor] # + # @see DSL.new + # # @api public def self.define(**options, &block) DSL.new(options, &block).call end - # Define a param schema + # Define a schema suitable for HTTP params # + # This schema type uses `Types::Params` for coercion by default + # + # @example + # Dry::Schema.Params do + # required(:name).filled(:string) + # required(:age).value(:integer, gt?: 0) + # end + # # @return [Params] # + # @see Schema#define + # # @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 + # Define a schema suitable for JSON data # - # @return [JSON] + # This schema type uses `Types::JSON` for coercion by default + # + # @example + # Dry::Schema.JSON do + # required(:name).filled(:string) + # required(:age).value(:integer, gt?: 0) + # end + # + # @return [Params] + # + # @see Schema#define # # @api public def self.JSON(**options, &block) define(**options, processor_type: JSON, &block) end