All Versions
65
Latest Version
Avg Release Cycle
60 days
Latest Release
530 days ago

Changelog History
Page 3

  • v1.1.0 Changes

    June 14, 2019

    โž• Added

    • 0๏ธโƒฃ key? method available within rules, that can be used to check if there's a value under the rule's default key (refs #540) (@solnic)
    • ๐Ÿ‘ value supports hash-based path specifications now (refs #547) (@solnic)
    • value can read multiple values when the key points to them, ie in case of rule(geo: [:lat, :lon]) it would return an array with lat and lon (@solnic)

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Passing multiple macro names to validate or each works correctly (fixed #538 #541) (@jandudulski)

    Compare v1.0.0...v1.1.0

  • v1.1.0-docs

    June 17, 2019
  • v1.0.0 Changes

    June 10, 2019

    โž• Added

    • ๐Ÿ‘Œ Support for defining rules for each element of an array via rule(:items).each { ... } (solnic)
    • Support for parameterized macros via rule(:foo).validate(my_macro: :some_option) (solnic)
    • values#[] is now compatible with path specs (symbol, array with keys or dot-notation) (issue #528) (solnic)
    • value shortcut for accessing the value found under the first key specified by a rule. ie rule(:foo) { value } returns values[:foo] (solnic)

    ๐Ÿ›  Fixed

    • 0๏ธโƒฃ Contract's config.locale option was replaced by config.messages.default_locale to avoid conflicts with run-time :locale option and/or whatever is set via I18n gem (solnic)
    • Macros no longer mutate Dry::Validation::Contract.macros when using inheritance (solnic)
    • Missing dependency on dry-container was added (solnic)

    ๐Ÿ”„ Changed

    • rule will raise InvalidKeysError when specified keys are not defined by the schema (solnic)
    • Contract.new will raise SchemaMissingError when the class doesn't have schema defined (solnic)
    • ๐Ÿ‘ Contracts no longer support :locale option in the constructor. Use Result#errors(locale: :pl) to change locale at run-time (solnic)

    Compare v1.0.0.rc3...v1.0.0

  • v1.0.0.rc3 Changes

    May 06, 2019

    โž• Added

    • [EXPERIMENTAL] Validation.register_macro for registering global macros (solnic)
    • [EXPERIMENTAL] Contract.register_macro for registering macros available to specific contract classes (solnic)
    • Dry::Validation.Contract shortcut for quickly defining a contract and getting its instance back (solnic)
    • ๐Ÿ†• New configuration option config.locale for setting the default locale (solnic)

    ๐Ÿ›  Fixed

    • config/errors.yml are now bundled with the gem, rc2 was broken because of this (solnic)

    Compare v1.0.0.rc2...v1.0.0.rc3

  • v1.0.0.rc2 Changes

    May 04, 2019

    This was yanked on rubygems.org because the bundled gem was missing config directory, thus it was not possible to require it. It was fixed in rc3.

    โž• Added

    • ๐Ÿ‘ [EXPERIMENTAL] support for registering macros via Dry::Validation::Macros.register(:your_macro, &block) (solnic)
    • [EXPERIMENTAL] :acceptance as the first built-in macro (issue #157) (solnic)

    ๐Ÿ›  Fixed

    • Passing invalid argument to failure will raise a meaningful error instead of crashing (solnic)

    ๐Ÿ”„ Changed

    • In rule validation blocks, values is now an instance of a hash-like Dry::Validation::Values class, rather than Dry::Schema::Result. This gives more convenient access to data within rules (solnic)
    • โšก๏ธ Dependency on dry-schema was updated to ~> 1.0 (solnic)

    Compare v1.0.0.rc1...v1.0.0.rc2

  • v1.0.0.rc1 Changes

    April 26, 2019

    โž• Added

    • :hints extension is back (solnic)
    • Result objects have access to the context object which is shared between rules (flash-gordon)

    ๐Ÿ›  Fixed

    • Multiple hint messages no longer crash message set (flash-gordon)
    • Contract#inspect no longer crashes (solnic)

    ๐Ÿ”„ Changed

    • Dependency on dry-schema was bumped to ~> 0.6 - this pulls in dry-types 1.0.0 and dry-logic 1.0.0 (solnic)
    • Dependency on dry-initializer was bumped to ~> 3.0 (solnic)

    Compare v1.0.0.beta2...v1.0.0.rc1

  • v1.0.0.beta2 Changes

    April 04, 2019

    โž• Added

    • ๐Ÿ‘Œ Support for arbitrary meta-data in failures, ie:
      class NewUserContract < Dry::Validation::Contract
        params do
          required(:login).filled(:string)
        end
    
        rule(:login) do
          key.failure(text: 'is taken', code: 123) unless db.unique?(values[:login])
        end
      end
    

    Now your error hash will include { login: [{ text: 'is taken', code: 123 }] } (solnic + flash-gordon)

    ๐Ÿ”„ Changed

    • [BREAKING] Error was renamed to Message as it is a more generic concept (solnic)
    • [BREAKING] ErrorSet was renamed to MessageSet for consistency (solnic)
    • [BREAKING] :monads extension wraps entire result objects in Success or Failure (flash-gordon)

    Compare v1.0.0.beta1...v1.0.0.beta2

  • v1.0.0.beta1 Changes

    March 26, 2019

    โž• Added

    • ๐Ÿ†• New API for setting failures base.failure for base errors and key.failure for key errors (solnic)
    • ๐Ÿ‘Œ Support for base errors associated with a key even when child keys have errors too (solnic)
    • ๐Ÿ‘Œ Support for base errors not associated with any key (solnic)
    • Result objects use ErrorSet object now for managing messages (solnic)
    • Nested keys are properly handled when generating messages hash (issue #489) (flash-gordon + solnic)
    • ๐Ÿ‘ Result objects support locale and full options now (solnic)
    • ๐Ÿ”ง Ability to configure top_namespace for messages, which will be used for both schema and rule localization (solnic)
    • Rule blocks receive a context object that you can use to share data between rules (solnic)

    ๐Ÿ”„ Changed

    • [BREAKING] Result#errors returns an instance of ErrorSet now, it's an enumerable, coerible to a hash (solnic)
    • ๐Ÿšš [BREAKING] failure was removed in favor of key.failure or key(:foo).failure (solnic)
    • ๐Ÿšš [BREAKING] Result#to_hash was removed (flash-gordon)

    Compare v1.0.0.alpha2...v1.0.0.beta1

  • v1.0.0.alpha2 Changes

    March 05, 2019

    โœ… First round of bug fixes. Thanks for testing <3!

    ๐Ÿ›  Fixed

    • Errors with nested messages are correctly built (flash-gordon)
    • Messages for nested keys are correctly resolved (solnic)
    • A message for a nested key is resolved when it's defined under errors.rule.%{key} too, but a message under nested key will override it (solnic)

    ๐Ÿ”„ Changed

    • When a message template is not found a more meaningful error is raised that includes both rule identifier and key path (solnic)

    Compare v1.0.0.alpha1...v1.0.0.alpha2

  • v1.0.0.alpha1 Changes

    March 04, 2019

    Complete rewrite on top of dry-schema.

    โž• Added

    • [BREAKING] Dry::Validation::Contract as a replacement for validation schemas (solnic)
    • [BREAKING] New rule DSL with an improved API for setting error messages (solnic)

    Compare v0.13.0...v1.0.0.alpha1