++ed by:

135 PAUSE user(s)
93 non-PAUSE user(s).

Stevan Little



Changes for version 0.26

  • New Features ==
  • Parameterized Types We now support parameterized collection types, such as: ArrayRef[Int] # array or integers HashRef[Object] # a hash with object values They can also be nested: ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values And work with the type unions as well: ArrayRef[Int | Str] # array of integers of strings
  • Better Framework Extendability Moose.pm is now "extendable" such that it is now much easier to extend the framework and add your own keywords and customizations. See the "EXTENDING AND EMBEDDING MOOSE" section of the Moose.pm docs.
  • Moose Snacks! In an effort to begin documenting some of the various details of Moose as well as some common idioms, we have created Moose::Cookbook::Snacks as a place to find small (easily digestable) nuggets of Moose code.
  • ~ Several doc updates/cleanup thanks to castaway ~
  • converted build system to use Module::Install instead of Module::Build (thanks to jrockway)
  • Moose
    • added all the meta classes to the immutable list and set it to inline the accessors
    • fix import to allow Sub::Exporter like { into => } and { into_level => } (perigrin)
    • exposed and documented init_meta() to allow better embedding and extending of Moose (perigrin)
      • t/
        • complete re-organization of the test suite
        • added some new tests as well
        • finally re-enabled the Moose::POOP test since the new version of DBM::Deep now works again (thanks rob)
  • Moose::Meta::Class
    • fixed very odd and very nasty recursion bug with inner/augment (mst)
      • added tests for this (eilara)
  • Moose::Meta::Attribute Moose::Meta::Method::Constructor Moose::Meta::Method::Accessor
    • fixed issue with overload::Overloaded getting called on non-blessed items. (RT #29269)
      • added tests for this
  • Moose::Meta::Method::Accessor
    • fixed issue with generated accessor code making assumptions about hash based classes (thanks to dexter)
  • Moose::Coookbook::Snacks
    • these are bits of documentation, not quite as big as Recipes but which have no clear place in the module docs. So they are Snacks! (horray for castaway++)
  • Moose::Cookbook::Recipe4
    • updated it to use the new ArrayRef[MyType] construct
      • updated the accompanying test as well
  • Major Refactor of the Type Constraint system +++
  • with new features added as well +++
  • Moose::Util::TypeConstraint
    • no longer uses package variable to keep track of the type constraints, now uses the an instance of Moose::Meta::TypeConstraint::Registry to do it
    • added more sophisticated type notation parsing (thanks to mugwump)
      • added tests for this
  • Moose::Meta::TypeConstraint
    • some minor adjustments to make subclassing easier
    • added the package_defined_in attribute so that we can track where the type constraints are created
  • Moose::Meta::TypeConstraint::Union
    • this is now been refactored to be a subclass of Moose::Meta::TypeConstraint
  • Moose::Meta::TypeCoercion::Union
    • this has been added to service the newly refactored Moose::Meta::TypeConstraint::Union and is itself a subclass of Moose::Meta::TypeCoercion
  • Moose::Meta::TypeConstraint::Parameterized
    • added this module (taken from MooseX::AttributeHelpers) to help construct nested collection types
      • added tests for this
  • Moose::Meta::TypeConstraint::Registry
    • added this class to keep track of type constraints