remove trailing whitespace
[gitmo/Moose.git] / Changes
diff --git a/Changes b/Changes
index 9dcfa05..83db4f5 100644 (file)
--- a/Changes
+++ b/Changes
-Revision history for Perl extension Moose
+Also see Moose::Manual::Delta for more details of, and workarounds
+for, noteworthy changes.
 
-0.66
+0.76
+    * Moose::Meta::TypeConstraint
+      - Do not run coercions in coerce() if the value already passes the type
+        constraint (hdp)
+
+    * Moose::Meta::TypeConstraint::Class
+      - In validation error messages, specifically say that the value is not
+        an instance of the class. This should alleviate some frustrating
+        forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak)
+
+0.75_01 Thu, April 23, 2009
+    * Moose::Meta::Role::Application::ToClass
+      - Moose now warns about each class overriding methods from roles it
+        consumes (Sartak)
+
+    * Tests
+      - Warnings tests have standardized on Test::Output which is now an
+        unconditionally dependency (Sartak)
+
+    * Moose::Meta::Class
+      - Changes to immutabilization to work with Class::MOP 0.82_01+.
+
+0.75 Mon, April 20, 2009
+    * Moose
+    * Moose::Meta::Class
+      - Move validation of not inheriting from roles from Moose::extends to
+        Moose::Meta::Class::superclasses (doy)
+
+    * Moose::Util
+      - add ensure_all_roles() function to encapsulate the common "apply this
+        role unless the object already does it" pattern (hdp)
+
+    * Moose::Exporter
+      - Users can now select a different metaclass with the "-metaclass"
+        option to import, for classes and roles (Sartak)
+
+    * Moose::Meta::Role
+      - Make method_metaclass an attr so that it can accept a metarole
+        application.  (jdv)
+
+0.74 Tue, April 7, 2009
+    * Moose::Meta::Role
+    * Moose::Meta::Method::Destructor
+      - Include stack traces in the deprecation warnings.
+        (Florian Ragwitz)
+
+    * Moose::Meta::Class
+      - Removed the long-deprecated _apply_all_roles method.
+
+    * Moose::Meta::TypeConstraint
+      - Removed the long-deprecated union method.
+
+
+0.73_02 Mon, April 6, 2009
+    * More deprecations and renamings
+      - Moose::Meta::Method::Constructor
+        - initialize_body => _initialize_body (this is always called
+          when an object is constructed)
+
+    * Moose::Object
+      - The DEMOLISHALL method could throw an exception during global
+        destruction, meaning that your class's DEMOLISH methods would
+        not be properly called. Reported by t0m.
+
+    * Moose::Meta::Method::Destructor
+      - Destructor inlining was totally broken by the change to the
+        is_needed method in 0.72_01. Now there is a test for this
+        feature, and it works again.
+
+    * Moose::Util
+      - Bold the word 'not' in the POD for find_meta (t0m)
+
+0.73_01 Sun, April 5, 2009
+    * Moose::*
+      - Call user_class->meta in fewer places, with the eventual goal
+        of allowing the user to rename or exclude ->meta
+        altogether. Instead uses Class::MOP::class_of. (Sartak)
+
+    * Moose::Meta::Method::Accessor
+      - If an attribute had a lazy default, and that value did not
+        pass the attribute's type constraint, it did not get the
+        message from the type constraint, instead using a generic
+        message. Test provided by perigrin.
+
+    * Moose::Util::TypeConstraints
+      - Add duck_type keyword. It's sugar over making sure an object
+        can() a list of methods. This is easier than jrockway's
+        suggestion to fork all of CPAN. (perigrin)
+        - add tests and documentation (perigrin)
+
+    * Moose
+      - Document the fact that init_meta() returns the target class's
+        metaclass object. (hdp)
+
+    * Moose::Cookbook::Extending::Recipe1
+    * Moose::Cookbook::Extending::Recipe2
+    * Moose::Cookbook::Extending::Recipe3
+    * Moose::Cookbook::Extending::Recipe4
+      - Make init_meta() examples explicitly return the metaclass and
+        point out this fact. (hdp)
+
+    * Moose::Cookbook::Basics::Recipe12
+      - A new recipe, creating a custom meta-method class.
+
+    * Moose::Cookbook::Meta::Recipe6
+      - A new recipe, creating a custom meta-method class.
+
+    * Moose::Meta::Class
+    * Moose::Meta::Method::Constructor
+      - Attribute triggers no longer receive the meta-attribute object
+        as an argument in any circumstance. Previously, triggers
+        called during instance construction were passed the
+        meta-attribute, but triggers called by normal accessors were
+        not. Fixes RT#44429, reported by Mark Swayne. (hdp)
+
+    * Moose::Manual::Attributes
+      - Remove references to triggers receving the meta-attribute object as an
+        argument. (hdp)
+
+    * Moose::Cookbook::FAQ
+      - Remove recommendation for deprecated Moose::Policy and
+        Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
+        instead. (hdp)
+
+    * Many methods have been renamed with a leading underscore, and a
+      few have been deprecated entirely. The methods with a leading
+      underscore are consider "internals only". People writing
+      subclasses or extensions to Moose should feel free to override
+      them, but they are not for "public" use.
+
+      - Moose::Meta::Class
+        - check_metaclass_compatibility => _check_metaclass_compatibility
+
+      - Moose::Meta::Method::Accessor
+        - initialize_body => _initialize_body (this is always called
+          when an object is constructed)
+        - /(generate_.*_method(?:_inline)?)/ => '_' . $1
+
+      - Moose::Meta::Method::Constructor
+        - initialize_body => _initialize_body (this is always called
+          when an object is constructed)
+        - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
+        - attributes => _attributes (now inherited from parent)
+        - meta_instance => _meta_instance (now inherited from parent)
+
+      - Moose::Meta::Role
+        - alias_method is deprecated. Use add_method
+
+0.73 Fri, March 29, 2009
+    * No changes from 0.72_01.
+
+0.72_01 Thu, March 26, 2009
+    * Everything
+      - Almost every module has complete API documentation. A few
+        methods (and even whole classes) have been intentionally
+        excluded pending some rethinking of their APIs.
+
+    * Moose::Util::TypeConstraints
+      - Calling subtype with a name as the only argument is now an
+        exception. If you want an anonymous subtype do:
+
+         my $subtype = subtype as 'Foo';
+
+    * Moose::Cookbook::Meta::Recipe7
+      - A new recipe, creating a custom meta-instance class.
+
+    * Moose::Cookbook::Basics::Recipe5
+      - Fix various typos and mistakes. Includes a patch from Radu
+        Greab.
+
+    * Moose::Cookbook::Basics::Recipe9
+      - Link to this recipe from Moose.pm's builder blurb
+
+    * Moose::Exporter
+      - When wrapping a function with a prototype, Moose::Exporter now
+        makes sure the wrapped function still has the same
+        prototype. (Daisuke Maki)
+
+    * Moose::Meta::Attribute
+      - Allow a subclass to set lazy_build for an inherited
+        attribute. (hdp)
+
+    * Makefile.PL
+      - Explicitly depend on Data::OptList. We already had this dependency
+        via Sub::Exporter, but since we're using it directly we're
+        better off with it listed. (Sartak)
+
+    * Moose::Meta::Method::Constructor
+      - Make it easier to subclass the inlining behaviour. (Ash
+        Berlin)
+
+    * Moose::Manual::Delta
+      - Details significant changes in the history of Moose, along
+        with recommended workarounds.
+
+    * Moose::Manual::Contributing
+      - Contributor's guide to Moose.
+
+    * Moose::Meta::Method::Constructor
+      - The long-deprecated intialize_body method has been removed
+        (yes, spelled like that).
+
+    * Moose::Meta::Method::Destructor
+      - This is_needed method is now always a class method.
+
+    * Moose::Meta::Class
+      - Changes to the internals of how make_immutable works to match
+        changes in latest Class::MOP.
+
+0.72 Mon, February 23, 2009
+    * Moose::Object
+    * Moose::Meta::Method::Constructor
+      - A mutable class accepted Foo->new(undef) without complaint,
+        while an immutable class would blow up with an unhelpful
+        error. Now, in both cases we throw a helpful error
+        instead. Reported by doy.
+
+0.71_01 Sun, February 22, 2009
+    * Moose::Cookbook
+      - Hopefully fixed some POD errors in a few recipes that caused
+        them to display weird on search.cpan.org.
+
+    * Moose::Util::TypeConstraints
+      - Calling type or subtype without the sugar helpers (as, where,
+        message) is now deprecated.
+      - The subtype function tried hard to guess what you meant, but
+        often got it wrong. For example:
+
+         my $subtype = subtype as 'ArrayRef[Object]';
+
+        This caused an error in the past, but now works as you'd
+        expect.
+
+    * Everywhere
+      - Make sure Moose.pm is loaded before calling
+        Moose->throw_error. This wasn't normally an issue, but could
+        bite you in weird cases.
+
+0.71 Thu, February 19, 2009
+    * Moose::Cookbook::Basics::Recipe11
+      - A new recipe which demonstrates the use of BUILDARGS and
+        BUILD. (Dave Rolsky)
+
+    * Moose::Cookbook::Roles::Recipe3
+      - A new recipe, applying a role to an object instance. (Dave
+        Rolsky)
+
+    * Moose::Exporter
+      - Allow overriding specific keywords from "also" packages. (doy)
+
+    * Tests
+      - Replace hardcoded cookbook tests with Test::Inline to ensure
+        the tests match the actual code in the recipes. (Dave Rolsky)
+
+    * Moose::Cookbook
+      - Working on the above turned up a number of little bugs in the
+        recipe code. (Dave Rolsky)
+
+    * Moose::Util::TypeConstraints::Optimized
+      - Just use Class::MOP for the optimized ClassName check. (Dave
+        Rolsky)
+
+0.70 Sat, February 14, 2009
+    * Moose::Util::TypeConstraints
+      - Added the RoleName type (stevan)
+        - added tests for this (stevan)
+
+    * Moose::Cookbook::Basics::Recipe3
+      - Updated the before qw[left right] sub to be a little more
+        defensive about what it accepts (stevan)
+        - added more tests to t/000_recipies/basics/003_binary_tree.t
+          (stevan)
+
+    * Moose::Object
+      - We now always call DEMOLISHALL, even if a class does not
+        define DEMOLISH. This makes sure that method modifiers on
+        DEMOLISHALL work as expected. (doy)
+        - added tests for this (EvanCarroll)
+
+    * Moose::Util::MetaRole
+      - Accept roles for the wrapped_method_metaclass (rafl)
+        - added tests for this (rafl)
+
+    * Moose::Meta::Attribute
+      - We no longer pass the meta-attribute object as a final
+        argument to triggers. This actually changed for inlined code a
+        while back, but the non-inlined version and the docs were
+        still out of date.
+
+    * Tests
+      - Some tests tried to use Test::Warn 0.10, which had bugs. Now
+        they require 0.11. (Dave Rolsky)
+
+    * Documentation
+      - Lots of small changes to the manual, cookbook, and
+        elsewhere. These were based on feedback from various
+        users, too many to list here. (Dave Rolsky)
+
+0.69 Thu, February 12, 2009
+    * Moose
+      - Make some keyword errors use throw_error instead of croak
+        since Moose::Exporter wraps keywords now (Sartak)
+
+    * Moose::Cookbook::*
+      - Revised every recipe for style and clarity. Also moved some
+        documentation out of cookbook recipes and into Moose::Manual
+        pages. This work was funded as part of the Moose docs grant
+        from TPF. (Dave Rolsky)
+
+    * Moose::Meta::Method::Delegation
+      - If the attribute doing the delegation was not populated, the
+        error message did not specify the attribute name
+        properly. (doy)
+
+0.68 Wed, February 4, 2009
+    * POD
+      - Many spelling, typo, and formatting fixes by daxim.
+
+    * Moose::Manual::Attributes
+      - The NAME section in the POD used "Attribute" so search.cpan
+        didn't resolve links from other documents properly.
+
+    * Moose::Meta::Method::Overriden
+      - Now properly spelled as Overridden. Thanks to daxim for
+        noticing this.
+
+0.67 Tue, February 3, 2009
+    * Moose::Manual::*
+      - Lots of little typo fixes and a few clarifications. Several
+        pages didn't have proper titles, and so weren't actually
+        visible on search.cpan.org. Thanks to hanekomu for a variety
+        of fixes and formatting improvements.
+
+0.66 Tue, February 3, 2009
     * Moose::Manual
       - This is a brand new, extensive manual for Moose. This aims to
         provide a complete introduction to all of Moose's
-        features. This work was funded as part of the Moose doc grant
+        features. This work was funded as part of the Moose docs grant
         from TPF. (Dave Rolsky)
 
     * Moose::Meta::Attribute
@@ -186,7 +520,7 @@ Revision history for Perl extension Moose
       - Passing "-traits" when loading Moose caused the Moose.pm
         exports to be broken. Reported by t0m. (Dave Rolsky)
         - Tests for this bug. (t0m)
-    
+
     * Moose::Util
       - Change resolve_metaclass alias to use the new
         load_first_existing_class function. This makes it a lot
@@ -202,7 +536,7 @@ Revision history for Perl extension Moose
         them, but MooseX modules can create them in some other
         way. See the 0.58 changes for more details. (jnapiorkowski)
       - Changed the way subtypes are created so that the job is
-        delegated to a type constraint parent.  This clears up some
+        delegated to a type constraint parent. This clears up some
         hardcoded checking and should allow correct subtypes of
         Moose::Meta::Type::Constraint. Don't rely on this new API too
         much (create_child_type) because it may go away in the
@@ -211,7 +545,7 @@ Revision history for Perl extension Moose
     * Moose::Meta::TypeConstraint::Union
       - Type constraint names are sorted as strings, not numbers.
         (jnapiorkowski)
-      
+
     * Moose::Meta::TypeConstraint::Parameterizable
       - New parameterize method. This can be used as a factory method
         to make a new type constraint with a given parameterized
@@ -221,7 +555,7 @@ Revision history for Perl extension Moose
 0.59 Tue October 14, 2008
     * Moose
       - Add abridged documentation for builder/default/initializer/
-        predicate, and link to more details sections in 
+        predicate, and link to more details sections in
         Class::MOP::Attribute. (t0m)
 
     * Moose::Util::TypeConstraints
@@ -297,7 +631,7 @@ Revision history for Perl extension Moose
 
     * Moose::Meta::TypeConstraint::Parameterizable
       - Added a new method 'parameterize' which is basically a factory
-        for the containing constraint.  This makes it easier to create
+        for the containing constraint. This makes it easier to create
         new types of parameterized constraints. (jnapiorkowski)
 
     * Moose::Meta::TypeConstraint::Union
@@ -316,7 +650,7 @@ Revision history for Perl extension Moose
         all whitespace differences. (jnapiorkowski)
       - Changed the way we parse type constraint strings so that we now
         match TC[Int,Int,...] and TC[name=>Str] as parameterized type
-        constraints.  This lays the foundation for more flexible type
+        constraints. This lays the foundation for more flexible type
         constraint implementations.
 
     * Tests and docs for all the above. (jnapiorkowski)
@@ -432,16 +766,16 @@ Revision history for Perl extension Moose
       - explicitly require Perl 5.8.0+ (Dave Rolsky)
 
     * Moose::Util::TypeConstraints
-      - Fix warnings from find_type_constraint if the type is not 
+      - Fix warnings from find_type_constraint if the type is not
         found (t0m).
-      
+
     * Moose::Meta::TypeConstraint
       - Predicate methods (equals/is_a_type_of/is_subtype_of) now
         return false if the type you specify cannot be found in the
         type registry, rather than throwing an unhelpful and
         coincidental exception. (t0m).
         - added docs & test for this (t0m)
-    
+
     * Moose::Meta::TypeConstraint::Registry
       - add_type_constraint now throws an exception if a parameter is
         not supplied (t0m).
@@ -456,7 +790,7 @@ Revision history for Perl extension Moose
         method when that method was provided by another role being
         composed at the same time. (Dave Rolsky)
         - test and bug finding (tokuhirom)
-        
+
 0.55_01 Wed August 20, 2008
 
     !! Calling Moose::init_meta as a function is now         !!
@@ -564,32 +898,32 @@ Revision history for Perl extension Moose
 
 0.54 Thurs. July 3, 2008
     ... this is not my day today ...
-    
+
     * Moose::Meta::Attribute
-      - fixed legal_options_for_inheritance such that 
-        clone_and_inherit options still works for 
-        Class::MOP::Attribute objects and therefore 
+      - fixed legal_options_for_inheritance such that
+        clone_and_inherit options still works for
+        Class::MOP::Attribute objects and therefore
         does not break MooseX::AttributeHelpers
         (stevan)
 
 0.53 Thurs. July 3, 2008
-    * Whoops, I guess I should run 'make manifest' before 
-      actually releasing the module. No actual changes 
+    * Whoops, I guess I should run 'make manifest' before
+      actually releasing the module. No actual changes
       in this release, except the fact that it includes
-      the changes that I didn't include in the last 
+      the changes that I didn't include in the last
       release. (stevan--)
 
 0.52 Thurs. July 3, 2008
     * Moose
       - added "FEATURE REQUESTS" section to the Moose docs
         to properly direct people (stevan) (RT #34333)
-      - making 'extends' croak if it is passed a Role since 
-        this is not ever something you want to do 
+      - making 'extends' croak if it is passed a Role since
+        this is not ever something you want to do
         (fixed by stevan, found by obra)
         - added tests for this (stevan)
 
     * Moose::Object
-      - adding support for DOES (as in UNIVERSAL::DOES) 
+      - adding support for DOES (as in UNIVERSAL::DOES)
         (nothingmuch)
         - added test for this
 
@@ -598,12 +932,12 @@ Revision history for Perl extension Moose
         - added tests for this (wreis)
 
     * Moose::Cookbook::Snacks::*
-      - removed some of the unfinished snacks that should 
+      - removed some of the unfinished snacks that should
         not have been released yet. Added some more examples
         to the 'Keywords' snack. (stevan)
 
     * Moose::Cookbook::Style
-      - added general Moose "style guide" of sorts to the 
+      - added general Moose "style guide" of sorts to the
         cookbook (nothingmuch) (RT #34335)
 
     * t/
@@ -659,9 +993,9 @@ Revision history for Perl extension Moose
     !! faster with new Class::MOP 0.59 !!
 
     * Moose::Meta::Attribute
-      - fixed how the is => (ro|rw) works with 
+      - fixed how the is => (ro|rw) works with
         custom defined reader, writer and accessor
-        options. 
+        options.
         - added docs for this (TODO).
         - added tests for this (Thanks to Penfold)
       - added the custom attribute alias for regular
@@ -675,15 +1009,15 @@ Revision history for Perl extension Moose
       Moose::Meta::Role
       Moose::Meta::Role::Composite
       Moose::Util::TypeConstraints
-      - switched usage of reftype to ref because 
+      - switched usage of reftype to ref because
         it is much faster
-        
+
     * Moose::Meta::Role
       - changing add_package_symbol to use the new
         HASH ref form
-    
+
     * Moose::Object
-      - fixed how DEMOLISHALL is called so that it 
+      - fixed how DEMOLISHALL is called so that it
         can be overrided in subclasses (thanks to Sartak)
         - added test for this (thanks to Sartak)
 
@@ -703,7 +1037,7 @@ Revision history for Perl extension Moose
 0.47 Thurs. May 29, 2008
     (late night release engineering)--
 
-    - fixing the version is META.yml, no functional 
+    - fixing the version is META.yml, no functional
       changes in this release
 
 0.46 Wed. May 28, 2008
@@ -712,153 +1046,153 @@ Revision history for Perl extension Moose
 
     * Moose::Meta::Class
       - some optimizations of the &initialize method
-        since it is called so often by &meta    
-        
+        since it is called so often by &meta
+
     * Moose::Meta::Class
       Moose::Meta::Role
-      - now use the get_all_package_symbols from the 
-        updated Class::MOP, test suite is now 10 seconds 
+      - now use the get_all_package_symbols from the
+        updated Class::MOP, test suite is now 10 seconds
         faster
-    
+
     * Moose::Meta::Method::Destructor
-      - is_needed can now also be called as a class 
-        method for immutablization to check if the 
-        destructor object even needs to be created 
+      - is_needed can now also be called as a class
+        method for immutablization to check if the
+        destructor object even needs to be created
         at all
-    
+
     * Moose::Meta::Method::Destructor
       Moose::Meta::Method::Constructor
-      - added more descriptive error message to help 
+      - added more descriptive error message to help
         keep people from wasting time tracking an error
         that is easily fixed by upgrading.
 
 0.45 Saturday, May 24, 2008
     * Moose
-      - Because of work in Class::MOP 0.57, all 
+      - Because of work in Class::MOP 0.57, all
         XS based functionality is now optional
         and a Pure Perl version is supplied
         - the CLASS_MOP_NO_XS environment variable
-          can now be used to force non-XS versions 
-          to always be used   
+          can now be used to force non-XS versions
+          to always be used
         - several of the packages have been tweaked
           to take care of this, mostly we added
-          support for the package_name and name 
+          support for the package_name and name
           variables in all the Method metaclasses
-      - before/around/after method modifiers now 
+      - before/around/after method modifiers now
         support regexp matching of names
         (thanks to Takatoshi Kitano)
         - tests added for this
-        - NOTE: this only works for classes, it 
-          is currently not supported in roles, 
+        - NOTE: this only works for classes, it
+          is currently not supported in roles,
           but, ... patches welcome
       - All usage of Carp::confess have been replaced
         by Carp::croak in the "keyword" functions since
         the stack trace is usually not helpful
-      
+
     * Moose::Role
       - All usage of Carp::confess have been replaced
         by Carp::croak in the "keyword" functions since
-        the stack trace is usually not helpful  
-      - The 'has' keyword for roles now accepts the 
-        same array ref form that Moose.pm does 
+        the stack trace is usually not helpful
+      - The 'has' keyword for roles now accepts the
+        same array ref form that Moose.pm does
         (has [qw/foo bar/] => (is => 'rw', ...))
         - added test for this
-      
+
     * Moose::Meta::Attribute
       - trigger on a ro-attribute is no longer an
         error, as it's useful to trigger off of the
         constructor
 
     * Moose::Meta::Class
-      - added same 'add_package_symbol' fix as in 
+      - added same 'add_package_symbol' fix as in
         Class::MOP 0.57
 
     * Moose::Util
-      - does_role now handles non-Moose classes 
+      - does_role now handles non-Moose classes
         more gracefully
         - added tests for this
-      - added the 'add_method_modifier' function 
+      - added the 'add_method_modifier' function
         (thanks to Takatoshi Kitano)
 
     * Moose::Util::TypeConstraints
-      - subtypes of parameterizable types now are 
+      - subtypes of parameterizable types now are
         themselves parameterizable types
 
     * Moose::Meta::Method::Constructor
-      - fixed bug where trigger was not being 
-        called by the inlined immutable 
-        constructors 
+      - fixed bug where trigger was not being
+        called by the inlined immutable
+        constructors
         - added test for this (thanks to Caelum)
-    
+
     * Moose::Meta::Role::Application::ToInstance
       - now uses the metaclass of the instance
         (if possible) to create the anon-class
         (thanks Jonathan Rockway)
-    
+
     * Moose::Cookbook::Recipe22
       - added the meta-attribute trait recipe
         (thanks to Sartak)
-    
+
     * t/
-      - fixed hash-ordering test bug that was 
+      - fixed hash-ordering test bug that was
         causing occasional cpantester failures
-      - renamed the t/000_recipe/*.t tests to be 
-        more descriptive (thanks to Sartak) 
+      - renamed the t/000_recipe/*.t tests to be
+        more descriptive (thanks to Sartak)
 
 0.44 Sat. May 10, 2008
     * Moose
-      - made make_immutable warning cluck to 
+      - made make_immutable warning cluck to
         show where the error is (thanks mst)
-    
+
     * Moose::Object
-      - BUILDALL and DEMOLISHALL now call 
-        ->body when looping through the 
+      - BUILDALL and DEMOLISHALL now call
+        ->body when looping through the
         methods, to avoid the overloaded
         method call.
       - fixed issue where DEMOLISHALL was
-        eating the $@ values, and so not 
+        eating the $@ values, and so not
         working correctly, it still kind of
-        eats them, but so does vanilla perl 
+        eats them, but so does vanilla perl
         - added tests for this
-      
+
     * Moose::Cookbook::Recipe7
-      - added new recipe for immutable 
+      - added new recipe for immutable
         functionality (thanks Dave Rolsky)
-      
+
     * Moose::Cookbook::Recipe9
-      - added new recipe for builder and 
+      - added new recipe for builder and
         lazy_build (thanks Dave Rolsky)
-      
+
     * Moose::Cookbook::Recipe11
-      - added new recipe for method aliasing 
+      - added new recipe for method aliasing
         and exclusion with Roles (thanks Dave Rolsky)
 
     * t/
       - fixed Win32 test failure (thanks spicyjack)
 
-    ~ removed Build.PL and Module::Build compat 
+    ~ removed Build.PL and Module::Build compat
       since Module::Install has done that.
 
 0.43 Wed. April, 30, 2008
     * NOTE TO SELF:
-        drink more coffee before 
+        drink more coffee before
         doing release engineering
-      
-    - whoops, forgot to do the smolder tests, 
+
+    - whoops, forgot to do the smolder tests,
       and we broke some of the custom meta-attr
       modules. This fixes that.
 
 0.42 Mon. April 28, 2008
-    - some bad tests slipped by, nothing else 
+    - some bad tests slipped by, nothing else
       changed in this release (cpantesters++)
-      
-    - upped the Class::MOP dependency to 0.55 
-      since we have tests which need the C3 
+
+    - upped the Class::MOP dependency to 0.55
+      since we have tests which need the C3
       support
 
 0.41 Mon. April 28, 2008
     ~~ numerous documentation updates ~~
-    
+
     - Changed all usage of die to Carp::croak for better
       error reporting (initial patch by Tod Hagan)
 
@@ -875,8 +1209,8 @@ Revision history for Perl extension Moose
         any method/@ISA cache penalty (nothingmuch)
 
     * Moose::Meta::Class
-      - fixing &new_object to make sure trigger gets the 
-        coerced value (spotted by Charles Alderman on the 
+      - fixing &new_object to make sure trigger gets the
+        coerced value (spotted by Charles Alderman on the
         mailing list)
         - added test for this
 
@@ -886,23 +1220,23 @@ Revision history for Perl extension Moose
         found by Jesse Luehrs, fixed by Dave Rolsky)
         - added tests for this (Dave Rolsky)
       - fix typo in initialize_body method (nothingmuch)
-      
+
     * Moose::Meta::Method::Destructor
       - fix typo in initialize_body method (nothingmuch)
 
     * Moose::Meta::Method::Overriden
       Moose::Meta::Method::Augmented
-      - moved the logic for these into their own 
+      - moved the logic for these into their own
         classes (nothingmuch)
 
     * Moose::Meta::Attribute
-      - inherited attributes may now be extended without 
+      - inherited attributes may now be extended without
         restriction on the type ('isa', 'does') (Sartak)
         - added tests for this (Sartak)
-      - when an attribute property is malformed (such as lazy without 
-        a default), give the name of the attribute in the error 
+      - when an attribute property is malformed (such as lazy without
+        a default), give the name of the attribute in the error
         message (Sartak)
-      - added the &applied_traits and &has_applied_traits methods 
+      - added the &applied_traits and &has_applied_traits methods
         to allow introspection of traits
         - added tests for this
       - moved 'trait' and 'metaclass' argument handling to here from
@@ -910,14 +1244,14 @@ Revision history for Perl extension Moose
       - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
         '+foo' syntax) (nothingmuch)
         - added tests for this (t0m)
-     
-    * Moose::Object 
-      - localize $@ inside DEMOLISHALL to avoid it 
+
+    * Moose::Object
+      - localize $@ inside DEMOLISHALL to avoid it
         eating $@ (found by Ernesto)
         - added test for this (thanks to Ernesto)
 
     * Moose::Util::TypeConstraints
-      - &find_type_constraint now DWIMs when given an 
+      - &find_type_constraint now DWIMs when given an
         type constraint object or name (nothingmuch)
       - &find_or_create_type_constraint superseded with a number of more
         specific functions:
@@ -930,19 +1264,19 @@ Revision history for Perl extension Moose
       Moose::Meta::TypeConstraint::Enum
       Moose::Meta::TypeConstraint::Union
       Moose::Meta::TypeConstraint::Parameterized
-        - added the &equals method for comparing two type 
+        - added the &equals method for comparing two type
           constraints (nothingmuch)
           - added tests for this (nothingmuch)
 
     * Moose::Meta::TypeConstraint
-      - add the &parents method, which is just an alias to &parent. 
+      - add the &parents method, which is just an alias to &parent.
         Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
 
     * Moose::Meta::TypeConstraint::Class
       - added the class attribute for introspection purposes
         (nothingmuch)
         - added tests for this
-        
+
     * Moose::Meta::TypeConstraint::Enum
       Moose::Meta::TypeConstraint::Role
       - broke these out into their own classes (nothingmuch)
@@ -961,70 +1295,70 @@ Revision history for Perl extension Moose
 
 0.39 Fri. March 14, 2008
     * Moose
-      - documenting the use of '+name' with attributes 
+      - documenting the use of '+name' with attributes
         that come from recently composed roles. It makes
-        sense, people are using it, and so why not just 
+        sense, people are using it, and so why not just
         officially support it.
-      - fixing the 'extends' keyword so that it will not 
+      - fixing the 'extends' keyword so that it will not
         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
-      
+
     * oose
-      - added the perl -Moose=+Class::Name feature to allow 
+      - added the perl -Moose=+Class::Name feature to allow
         monkeypatching of classes in one liners
-      
+
     * Moose::Util
-      - fixing the 'apply_all_roles' keyword so that it will not 
-        trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)    
-    
+      - fixing the 'apply_all_roles' keyword so that it will not
+        trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
+
     * Moose::Meta::Class
       - added ->create method which now supports roles (thanks to jrockway)
         - added tests for this
-      - added ->create_anon_class which now supports roles and caching of 
+      - added ->create_anon_class which now supports roles and caching of
         the results (thanks to jrockway)
         - added tests for this
       - made ->does_role a little more forgiving when it is
         checking a Class::MOP era metaclasses.
-    
+
     * Moose::Meta::Role::Application::ToInstance
-      - it is now possible to pass extra params to be used when 
+      - it is now possible to pass extra params to be used when
         a role is applied to an the instance (rebless_params)
         - added tests for this
-    
+
     * Moose::Util::TypeConstraints
       - class_type now accepts an optional second argument for a
         custom message. POD anotated accordingly (groditi)
-        - added tests for this 
-      - it is now possible to make anon-enums by passing 'enum' an 
-        ARRAY ref instead of the $name => @values. Everything else 
+        - added tests for this
+      - it is now possible to make anon-enums by passing 'enum' an
+        ARRAY ref instead of the $name => @values. Everything else
         works as before.
         - added tests for this
-    
+
     * t/
-      - making test for using '+name' on attributes consumed 
-        from a role, it works and makes sense too.    
+      - making test for using '+name' on attributes consumed
+        from a role, it works and makes sense too.
 
-    * Moose::Meta::Attribute 
-      - fix handles so that it doesn't return nothing 
-        when the method cannot be found, not sure why 
+    * Moose::Meta::Attribute
+      - fix handles so that it doesn't return nothing
+        when the method cannot be found, not sure why
         it ever did this originally, this means we now
-        have slightly better support for AUTOLOADed 
+        have slightly better support for AUTOLOADed
         objects
         - added more delegation tests
-      - adding ->does method to this so as to better 
+      - adding ->does method to this so as to better
         support traits and their introspection.
         - added tests for this
-    
+
     * Moose::Object
-      - localizing the Data::Dumper configurations so 
+      - localizing the Data::Dumper configurations so
         that it does not pollute others (RT #33509)
       - made ->does a little more forgiving when it is
         passed Class::MOP era metaclasses.
 
 0.38 Fri. Feb. 15, 2008
-    * Moose::Meta::Attribute 
-      - fixed initializer to correctly do 
-        type checking and coercion in the 
-        callback 
+    * Moose::Meta::Attribute
+      - fixed initializer to correctly do
+        type checking and coercion in the
+        callback
         - added tests for this
 
     * t/
@@ -1032,62 +1366,62 @@ Revision history for Perl extension Moose
 
 0.37 Thurs. Feb. 14, 2008
     * Moose
-      - fixed some details in Moose::init_meta 
+      - fixed some details in Moose::init_meta
         and its superclass handling (thanks thepler)
         - added tests for this (thanks thepler)
-      - 'has' now dies if you don't pass in name 
+      - 'has' now dies if you don't pass in name
         value pairs
       - added the 'make_immutable' keyword as a shortcut
         to make_immutable
 
     * Moose::Meta::Class
       Moose::Meta::Method::Constructor
-      Moose::Meta::Attribute        
+      Moose::Meta::Attribute
       - making (init_arg => undef) work here too
         (thanks to nothingmuch)
-        
-    * Moose::Meta::Attribute        
+
+    * Moose::Meta::Attribute
       Moose::Meta::Method::Constructor
-      Moose::Meta::Method::Accessor                
+      Moose::Meta::Method::Accessor
       - make lazy attributes respect attr initializers (rjbs)
         - added tests for this
-    
+
     * Moose::Util::TypeConstraints
       Moose::Util::TypeConstraints::OptimizedConstraints
       Moose::Meta::TypeConstraints
       Moose::Meta::Attribute
       Moose::Meta::Method::Constructor
-      Moose::Meta::Method::Accessor            
-      - making type errors use the 
+      Moose::Meta::Method::Accessor
+      - making type errors use the
         assigned message (thanks to Sartak)
         - added tests for this
 
     * Moose::Meta::Method::Destructor
-      - making sure DESTROY gets inlined properly 
+      - making sure DESTROY gets inlined properly
         with successive DEMOLISH calls (thanks to manito)
 
-    * Moose::Meta::Attribute  
-      Moose::Meta::Method::Accessor 
-      - fixed handling of undef with type constraints 
-        (thanks to Ernesto)               
+    * Moose::Meta::Attribute
+      Moose::Meta::Method::Accessor
+      - fixed handling of undef with type constraints
+        (thanks to Ernesto)
         - added tests for this
-    
+
     * Moose::Util
-      - added &get_all_init_args and &get_all_attribute_values 
+      - added &get_all_init_args and &get_all_attribute_values
         (thanks to Sartak and nothingmuch)
 
 0.36 Sat. Jan. 26, 2008
     * Moose::Role
       Moose::Meta::Attribute
-      - role type tests now support when roles are 
+      - role type tests now support when roles are
         applied to non-Moose classes (found by ash)
         - added tests for this (thanks to ash)
       - couple extra tests to boost code coverage
 
-    * Moose::Meta::Method::Constructor    
+    * Moose::Meta::Method::Constructor
       - improved fix for handling Class::MOP attributes
-        - added test for this        
-      
+        - added test for this
+
     * Moose::Meta::Class
       - handled the add_attribute($attribute_meta_object)
         case correctly
@@ -1095,12 +1429,12 @@ Revision history for Perl extension Moose
 
 0.35 Tues. Jan. 22, 2008
     * Moose::Meta::Method::Constructor
-      - fix to make sure even Class::MOP attributes 
+      - fix to make sure even Class::MOP attributes
         are handled correctly (Thanks to Dave Rolsky)
         - added test for this (also Dave Rolsky)
-    
+
     * Moose::Meta::Class
-      - improved error message on _apply_all_roles, 
+      - improved error message on _apply_all_roles,
         you should now use Moose::Util::apply_all_roles
         and you shouldnt have been using a _ prefixed
         method in the first place ;)
@@ -1111,27 +1445,27 @@ Revision history for Perl extension Moose
 
     Moose is now a postmodern object system :)
       - (see the POD for details)
-      
-    * <<Role System Refactoring>>    
-    - this release contains a major reworking and 
-      cleanup of the role system     
+
+    * <<Role System Refactoring>>
+    - this release contains a major reworking and
+      cleanup of the role system
       - 100% backwards compat.
       - Role application now restructured into seperate
         classes based on type of applicants
       - Role summation (combining of more than one role)
-        is much cleaner and anon-classes are no longer 
+        is much cleaner and anon-classes are no longer
         used in this process
-      - new Composite role metaclass    
+      - new Composite role metaclass
       - runtime application of roles to instances
         is now more efficient and re-uses generated
         classes when applicable
-        
+
     * <<New Role composition features>>
-      - methods can now be excluded from a given role 
+      - methods can now be excluded from a given role
         during composition
-      - methods can now be aliased to another name (and 
-        still retain the original as well)        
-    
+      - methods can now be aliased to another name (and
+        still retain the original as well)
+
     * Moose::Util::TypeConstraints::OptimizedConstraints
       - added this module (see above)
 
@@ -1148,20 +1482,20 @@ Revision history for Perl extension Moose
     * Moose::Meta::Method::Accessor
       Moose::Meta::Method::Constructor
       Moose::Meta::Attribute
-      Moose::Meta::TypeConstraint      
-      Moose::Meta::TypeCoercion      
-      - lots of cleanup of such things as: 
+      Moose::Meta::TypeConstraint
+      Moose::Meta::TypeCoercion
+      - lots of cleanup of such things as:
         - generated methods
         - type constraint handling
-        - error handling/messages 
-        (thanks to nothingmuch)   
-    
+        - error handling/messages
+        (thanks to nothingmuch)
+
     * Moose::Meta::TypeConstraint::Parameterizable
-      - added this module to support the refactor 
+      - added this module to support the refactor
         in Moose::Meta::TypeConstraint::Parameterized
 
     * Moose::Meta::TypeConstraint::Parameterized
-      - refactored how these types are handled so they 
+      - refactored how these types are handled so they
         are more generic and not confined to ArrayRef
         and HashRef only