X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose.pm;h=f21862d3b6212b9f6261fc7dea364abed4d91458;hb=a917d5ae83dc260c6a84fed0ffdc0d1b70c50266;hp=32e137daa8116dd45d940cc0baf8261b82692343;hpb=a1f1f539fb4807109a354bb3d20b261e87c20a09;p=gitmo%2FMoose.git diff --git a/lib/Moose.pm b/lib/Moose.pm index 32e137d..f21862d 100644 --- a/lib/Moose.pm +++ b/lib/Moose.pm @@ -5,10 +5,9 @@ use warnings; use 5.008; use Scalar::Util 'blessed'; -use Carp 'confess'; +use Carp 'carp', 'confess'; use Class::Load 'is_class_loaded'; - use Moose::Deprecated; use Moose::Exporter; @@ -68,7 +67,10 @@ sub has { Moose->throw_error('Usage: has \'name\' => ( key => value, ... )') if @_ % 2 == 1; - my %options = ( definition_context => Moose::Util::_caller_info(), @_ ); + my %context = Moose::Util::_caller_info; + $context{context} = 'has declaration'; + $context{type} = 'class'; + my %options = ( definition_context => \%context, @_ ); my $attrs = ( ref($name) eq 'ARRAY' ) ? $name : [ ($name) ]; $meta->add_attribute( $_, %options ) for @$attrs; } @@ -90,6 +92,10 @@ our $SUPER_BODY; our @SUPER_ARGS; sub super { + if (@_) { + carp 'Arguments passed to super() are ignored'; + } + # This check avoids a recursion loop - see # t/bugs/super_recursion.t return if defined $SUPER_PACKAGE && $SUPER_PACKAGE ne caller(); @@ -459,7 +465,7 @@ for information on how to define a new type, and how to retrieve type meta-data) This will attempt to use coercion with the supplied type constraint to change the value passed into any accessors or constructors. You B supply a type constraint, and that type constraint B define a coercion. See -L for an example. +L for an example. =item I $role_name> @@ -637,15 +643,16 @@ cover here. See L for details on how a trait name is resolved to a role name. -Also see L for a metaclass trait -example. +Also see L for a metaclass +trait example. =item I => Str -The value of this key is the name of the method that will be called to -obtain the value used to initialize the attribute. See the L -and/or L for more information. +The value of this key is the name of the method that will be called to obtain +the value used to initialize the attribute. See the L and/or +L for more +information. =item I => SCALAR | CODE @@ -787,14 +794,15 @@ superclass method with the same arguments as the original method. An C method, is a way of explicitly saying "I am augmenting this method from my superclass". Once again, the details of how C and -C work is best described in the L. +C work is best described in the +L. =item B The keyword C, much like C, is a no-op outside of the context of an C method. You can think of C as being the inverse of C; the details of how C and C work is best described in -the L. +the L. =item B @@ -840,8 +848,8 @@ The lookup method for metaclasses is the same, except that it looks for a class matching B. If all this is confusing, take a look at -L, which demonstrates how to create an -attribute trait. +L, which demonstrates how to +create an attribute trait. =head1 UNIMPORTING FUNCTIONS @@ -868,7 +876,7 @@ to work. Here is an example: To learn more about extending Moose, we recommend checking out the "Extending" recipes in the L, starting with -L, which provides an overview of +L, which provides an overview of all the different ways you might extend Moose. L and L are the modules which provide the majority of the extension functionality, so reading their documentation should also be helpful. @@ -1079,7 +1087,8 @@ John (jgoulah) Goulah wrote L. Jess (castaway) Robinson wrote L. -Aran (bluefeet) Clary Deltac wrote L. +Aran (bluefeet) Clary Deltac wrote +L. Anders (Debolaz) Nor Berle contributed L and L.