== 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[RegexpRef]] # an array of hashes with regex values
And work with the type unions as well:
ArrayRef[Int | Str] # array of integers of stringsBetter 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)
- complete re-organization of the test suite
Moose::Meta::Class
- fixed very odd and very nasty recursion bug with
inner/augment (mst)
- added tests for this (eilara)
- fixed very odd and very nasty recursion bug with
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
- fixed issue with overload::Overloaded getting called
Moose::Meta::Method::Accessor
- fixed issue with generated accessor code making
assumptions about hash based classes (thanks to dexter)
- fixed issue with generated accessor code making
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++)
- these are bits of documentation, not quite as big as
Moose::Cookbook::Recipe4
- updated it to use the new ArrayRef[MyType] construct
- updated the accompanying test as well
- updated it to use the new ArrayRef[MyType] construct
+++ 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
- no longer uses package variable to keep track of
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
- some minor adjustments to make subclassing easier
Moose::Meta::TypeConstraint::Union
- this is now been refactored to be a subclass of
Moose::Meta::TypeConstraint
- this is now been refactored to be a subclass of
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
- this has been added to service the newly refactored
Moose::Meta::TypeConstraint::Parameterized
- added this module (taken from MooseX::AttributeHelpers)
to help construct nested collection types
- added tests for this
- added this module (taken from MooseX::AttributeHelpers)
Moose::Meta::TypeConstraint::Registry
- added this class to keep track of type constraints
- added this class to keep track of type constraints