Skip to content

Releases: dry-rb/dry-schema

v0.6.0

03 May 11:04
v0.6.0
f1c27bb
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

Changed

  • Dependency on dry-types was bumped to ~> 1.0 (solnic)
  • Dependency on dry-logic was bumped to ~> 1.0 (solnic)
  • Dependency on dry-initializer was bumped to ~> 3.0 (solnic)

Compare v0.5.1...v0.6.0

v0.5.1

17 Apr 10:11
v0.5.1
7e74ade
Compare
Choose a tag to compare
v0.5.1 Pre-release
Pre-release

Fixed

  • Key map no longer crashes on unexpected input (issue #118) (solnic)

Compare v0.5.0...v0.5.1

v0.5.0

04 Apr 10:05
v0.5.0
4c5d167
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

Added

  • Support for arbitrary meta-data in messages, ie:

    en:
      dry_schema:
        errors:
          filled?:
            text: "cannot be blank"
            code: 123

    Now your error hash will include { foo: [{ text: 'cannot be blank', code: 123 }] } (solnic + flash-gordon)

  • Support for type specs in array macro, ie required(:tags).array(:integer) (solnic)

  • Support for type specs in each macro, ie required(:tags).each(:integer) (solnic)

  • Shortcut for defining an array with hash as its member, ie:

    Dry::Schema.Params do
      required(:tags).array(:hash) do
        required(:name).filled(:string)
      end
    end

Fixed

  • Inferring predicates doesn't crash when Any type is used (flash-gordon)
  • Inferring type specs when type is already set works correctly (solnic)

Changed

  • [BREAKING] :monads extension wraps entire result objects in Success or Failure (flash-gordon)
  • When :hints are disabled, result AST will not include hint nodes (solnic)

Compare v0.4.0...v0.5.0

v0.4.0

26 Mar 12:11
v0.4.0
fd717e9
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

Added

  • Schemas are now compatible with procs via #to_proc (issue #53) (solnic)
  • Support for configuring top_namespace for localized messages (solnic)
  • Support for configuring more than one load path for localized messages (solnic)
  • Support for inferring predicates from arbitrary types (issue #101) (solnic)

Fixed

  • Handling of messages for optional keys without value rules works correctly (issue #87) (solnic)
  • Message structure for optional keys with an array of hashes no longer duplicates keys (issue #89) (solnic)
  • Inferring :date_time? predicate works correctly with DateTime types (issue #97) (solnic)

Changed

  • [BREAKING] Updated to work with dry-types 0.15.0 (flash-gordon)
  • [BREAKING] Result#{errors,messages,hints} returns MessageSet object now which is an enumerable coercible to a hash (solnic)
  • [BREAKING] Messages backend classes no longer use global configuration (solnic)
  • [BREAKING] Passing a non-symbol key name in the DSL will raise ArgumentError (issue #29) (solnic)
  • [BREAKING] Configuration for message backends is now nested under messages key with following settings:
    • messages.backend - previously messages
    • messages.load_paths - previously messages_path
    • messages.namespace - previously namespace
    • messages.top_namespace - new setting see above
  • [BREAKING] Messages::I18n uses I18.store_translations instead of messing with I18n.load_path (solnic)
  • Schemas (Params and JSON) have nicer inspect (solnic)

Compare v0.3.0...v0.4.0

v0.3.0

26 Mar 12:10
v0.3.0
3a91977
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

Fixed

  • Configuration is properly inherited from a parent schema (skryukov)
  • Result#error? returns true when a preceding key has errors (solnic)
  • Predicate inferrer no longer chokes on sum, constructor and enum types (solnic)
  • Predicate inferrer infers :bool? from boolean types (solnic)
  • Block-based definitions using array works correctly (solnic)
  • Using a disjunction with array and hash produces correct errors when element validation for array failed (solnic)

Changed

  • Required ruby version was removed from gemspec for people who are stuck on MRI 2.3.x (solnic)

Compare v0.2.0...v0.3.0

v0.2.0

26 Feb 11:15
v0.2.0
9843b11
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

Added

  • New hash macro which prepends hash? type-check and allows nested schema definition (solnic)
  • New array macro which works like each but prepends array? type-check (solnic)

Fixed

  • Rule name translation works correctly with I18n (issue #52) (solnic)
  • Rule name translation works correctly with namespaced messages (both I18n and plain YAML) (issue #57) (solnic)
  • Error messages under namespaces are correctly resolved for overridden names (issue #53) (solnic)
  • Namespaced error messages work correctly when schemas are reused within other schemas (issue #49) (solnic)
  • Child schema can override inherited rules now (issue #66) (skryukov)
  • Hints are correctly generated for disjunction that use type-check predicates (issue #24) (solnic)
  • Hints are correctly generated for nested schemas (issue #26) (solnic)
  • filled macro respects inferred type-check predicates and puts them in front (solnic)
  • Value coercion works correctly with re-usable nested schemas (issue #25) (solnic)

Changed

  • [BREAKING] Messages are now configured under dry_schema namespace by default (issue #38) (solnic)
  • [BREAKING] Hints are now an optional feature provided by :hints extension, to load it do Dry::Schema.load_extensions(:hints) (solnic)
  • [BREAKING] Hints generation was improved in general, output of Result#messages and Result#hints changed in some cases (solnic)
  • [BREAKING] schema macro no longer prepends hash? check, for this behavior use the new hash macro (see #31) (solnic)
  • [BREAKING] Support for MRI < 2.4 was dropped (solnic)

Compare v0.1.1...v0.2.0

v0.1.1

26 Feb 11:17
v0.1.1
7ef8908
Compare
Choose a tag to compare
v0.1.1 Pre-release
Pre-release

Added

  • Result#error? supports checking nested errors too ieresult.error?('user.address') (solnic)

Fixed

  • Fix issues with templates and invalid tokens (issue #27) (solnic)
  • Fix Ruby warnings (flash-gordon)

Compare v0.1.0...v0.1.1

Initial release

30 Jan 15:45
v0.1.0
df41fa6
Compare
Choose a tag to compare
Initial release Pre-release
Pre-release
v0.1.0

Version 0.1.0