Sha256: 5d65aea0254a656b2828b2896cb349c299374e418f15526e80a800c4839ee639
Contents?: true
Size: 1.9 KB
Versions: 3
Compression:
Stored size: 1.9 KB
Contents
# frozen_string_literal: true require "dry/core/extensions" require "dry/configurable" require "dry/logic" require "dry/schema/config" require "dry/schema/constants" require "dry/schema/dsl" require "dry/schema/params" require "dry/schema/json" module Dry # Main interface # # @api public module Schema extend Dry::Core::Extensions # Configuration # # @example # Dry::Schema.config.messages.backend = :i18n # # @return [Config] # # @api public def self.config @config ||= Config.new end # 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 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 schema suitable for JSON data # # 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 end end require "dry/schema/extensions"
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dry-schema-1.10.4 | lib/dry/schema.rb |
dry-schema-1.10.2 | lib/dry/schema.rb |
dry-schema-1.10.1 | lib/dry/schema.rb |