bump version and update Changes for release
[gitmo/Moose.git] / lib / Moose / Util.pm
index 3f6c00c..a617093 100644 (file)
@@ -7,7 +7,7 @@ use Sub::Exporter;
 use Scalar::Util 'blessed';
 use Class::MOP   0.60;
 
-our $VERSION   = '0.63';
+our $VERSION   = '0.72';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -73,7 +73,10 @@ sub search_class_by_role {
 sub apply_all_roles {
     my $applicant = shift;
 
-    Moose->throw_error("Must specify at least one role to apply to $applicant") unless @_;
+    unless (@_) {
+        require Moose;
+        Moose->throw_error("Must specify at least one role to apply to $applicant");
+    }
 
     my $roles = Data::OptList::mkopt( [@_] );
 
@@ -83,11 +86,16 @@ sub apply_all_roles {
         Class::MOP::load_class( $role_spec->[0] );
     }
 
-    ( $_->[0]->can('meta') && $_->[0]->meta->isa('Moose::Meta::Role') )
-        || Moose->throw_error("You can only consume roles, "
-        . $_->[0]
-        . " is not a Moose role")
-        foreach @$roles;
+    foreach my $role (@$roles) {
+        unless ( $role->[0]->can('meta')
+            && $role->[0]->meta->isa('Moose::Meta::Role') ) {
+
+            require Moose;
+            Moose->throw_error( "You can only consume roles, "
+                    . $role->[0]
+                    . " is not a Moose role" );
+        }
+    }
 
     if ( scalar @$roles == 1 ) {
         my ( $role, $params ) = @{ $roles->[0] };
@@ -213,7 +221,7 @@ This is a set of utility functions to help working with Moose classes, and
 is used internally by Moose itself. The goal is to provide useful functions
 that for both Moose users and Moose extenders (MooseX:: authors).
 
-This is a relatively new addition to the Moose toolchest, so ideas, 
+This is a relatively new addition to the Moose tool chest, so ideas, 
 suggestions and contributions to this collection are most welcome. 
 See the L<TODO> section below for a list of ideas for possible functions 
 to write.
@@ -241,7 +249,7 @@ Given an C<$applicant> (which can somehow be turned into either a
 metaclass or a metarole) and a list of C<@roles> this will do the 
 right thing to apply the C<@roles> to the C<$applicant>. This is 
 actually used internally by both L<Moose> and L<Moose::Role>, and the
-C<@roles> will be pre-processed through L<Data::OptList::mkopt>
+C<@roles> will be preprocessed through L<Data::OptList::mkopt>
 to allow for the additional arguments to be passed. 
 
 =item B<get_all_attribute_values($meta, $instance)>
@@ -306,7 +314,7 @@ Stevan Little
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2007-2008 by Infinity Interactive, Inc.
+Copyright 2007-2009 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>