All Versions
54
Latest Version
Avg Release Cycle
94 days
Latest Release
531 days ago

Changelog History
Page 5

  • v0.7.1 Changes

    April 06, 2016

    โž• Added

    • JSON::* types with JSON-specific coercions (coop)

    ๐Ÿ›  Fixed

    • Schema is properly inherited in Struct (backus)
    • constructor_type is properly inherited in Struct (fbernier)

    Compare v0.7.0...v0.7.1

  • v0.7.0 Changes

    March 30, 2016

    ๐Ÿš€ Major focus of this release is to make complex type composition possible and improving constraint errors to be more meaningful.

    โž• Added

    • Type#try interface that tries to process the input and return a result object which can be either a success or failure (solnic)
    • #meta interface for setting arbitrary meta data on types (solnic)
    • ConstraintError has a message which includes information about the predicate which failed ie nil violates constraints (type?(String) failed) (solnic)
    • Struct uses Dry::Equalizer too, just like Value (AMHOL)
    • Sum::Constrained which has a disjunction rule built from its types (solnic)
    • ๐Ÿ‘ Compiler supports [:constructor, [primitive, fn_proc]] nodes (solnic)
    • ๐Ÿ— Compiler supports building schema-less form.hash types (solnic)

    ๐Ÿ›  Fixed

    • ๐Ÿ‘ Sum now supports complex types like Array or Hash with member types and/or constraints (solnic)
    • 0๏ธโƒฃ Default#constrained will properly wrap a new constrained type (solnic)

    ๐Ÿ”„ Changed

    • [BREAKING] Renamed Type#{optional=>maybe} (AMHOL)
    • ๐Ÿ— [BREAKING] Type#optional(other) builds a sum: Strict::Nil | other (AMHOL)
    • [BREAKING] Type objects are now frozen (solnic)
    • [BREAKING] Value instances are frozen (AMHOL)
    • Array is no longer a constructor and has a Array::Member subclass (solnic)
    • Hash is no longer a constructor and is split into Hash::Safe, Hash::Strict and Hash::Symbolized (solnic)
    • Constrained has now a Constrained::Coercible subclass which will try to apply its type prior applying its rule (solnic)
    • #maybe uses Strict::Nil now (solnic)
    • 0๏ธโƒฃ Type#default will raise if nil was passed for Maybe type (solnic)
    • Hash with a schema will set maybe values for missing keys or nils (flash-gordon)

    Compare v0.6.0...v0.7.0

  • v0.6.0 Changes

    March 16, 2016

    ๐Ÿ“‡ Renamed from dry-data to dry-types and:

    โž• Added

    • Dry::Types.module which returns a namespace for inclusion which has all built-in types defined as constants (solnic)
    • 0๏ธโƒฃ Hash#schema supports default values now (solnic)
    • Hash#symbolized passes through keys that are already symbols (solnic)
    • 0๏ธโƒฃ Struct.new uses an empty hash by default as input (solnic)
    • Struct.constructor_type macro can be used to change attributes constructor (solnic)
    • 0๏ธโƒฃ default accepts a block now for dynamic values (solnic)
    • Types.register_class accepts a second arg which is the name of the class' constructor method, defaults to :new (solnic)

    ๐Ÿ›  Fixed

    • Struct will simply pass-through the input if it is already a struct (solnic)
    • 0๏ธโƒฃ default will raise if a value violates constraints (solnic)
    • 0๏ธโƒฃ Evaluating a default value tries to use type's constructor which makes it work with types that may coerce an input into nil (solnic)
    • enum works just fine with integer-values (solnic)
    • 0๏ธโƒฃ enum + default works just fine (solnic)
    • Optional no longer responds to primitive as it makes no sense since there's no single primitive for an optional value (solnic)
    • Optional passes-through a value which is already a maybe (solnic)

    ๐Ÿ”„ Changed

    • Dry::Types::Definition is now the base type definition object (solnic)
    • Dry::Types::Constructor is now a type definition with a constructor function (solnic)

    Compare v0.5.1...v0.6.0

  • v0.5.1 Changes

    January 11, 2016

    โž• Added

    • Dry::Data::Type#safe for types which can skip constructor when primitive does not match input's class (solnic)
    • form.array and form.hash safe types (solnic)

    Compare v0.5.0...v0.5.1

  • v0.5.0 Changes

    January 11, 2016

    โž• Added

    • 0๏ธโƒฃ Type#default interface for defining a type with a default value (solnic)

    ๐Ÿ›  Fixed

    • attribute raises proper error when type definition is missing (solnic)

    ๐Ÿ”„ Changed

    • [BREAKING] Dry::Data::Type.new accepts constructor and options now (solnic)
    • ๐Ÿ“‡ Renamed Dry::Data::Type::{Enum,Constrained} => Dry::Data::{Enum,Constrained} (solnic)
    • dry-logic is now a dependency for constrained types (solnic)
    • Constrained types are now always available (solnic)
    • strict.* category uses constrained types with :type? predicate (solnic)
    • SumType#call no longer needs to rescue from TypeError (solnic)

    Compare v0.4.2...v0.5.0

  • v0.4.2 Changes

    December 27, 2015

    โž• Added

    • ๐Ÿ‘Œ Support for arrays in type compiler (solnic)

    ๐Ÿ”„ Changed

    • Array member uses type objects now rather than just their constructors (solnic)

    Compare v0.4.0...v0.4.2

  • v0.4.0 Changes

    December 11, 2015

    โž• Added

    • ๐Ÿ‘Œ Support for sum-types with constraint type (solnic)
    • Dry::Data::Type#optional for defining optional types (solnic)

    ๐Ÿ”„ Changed

    • โœ‚ Dry::Data['optional'] was removed in favor of Dry::Data::Type#optional (solnic)

    Compare v0.3.2...v0.4.0

  • v0.3.2 Changes

    December 10, 2015

    โž• Added

    • Dry::Data::Value which works like a struct but is a value object with equalizer (solnic)

    ๐Ÿ›  Fixed

    • โž• Added missing require for dry-equalizer (solnic)

    Compare v0.3.1...v0.3.2

  • v0.3.1 Changes

    December 09, 2015

    ๐Ÿ”„ Changed

    • โœ‚ Removed require of constrained type and make it optional (solnic)

    Compare v0.3.0...v0.3.1

  • v0.3.0 Changes

    December 09, 2015

    โž• Added

    • Type#constrained interface for defining constrained types (solnic)
    • ๐Ÿ”ง Dry::Data can be configured with a type namespace (solnic)
    • ๐Ÿ”ง Dry::Data.finalize can be used to define types as constants under configured namespace (solnic)
    • Dry::Data::Type#enum for defining an enum from a specific type (solnic)
    • ๐Ÿ†• New types: symbol and class along with their strict versions (solnic)

    Compare v0.2.1...v0.3.0