X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FMethod%2FAugmented.pm;h=8e318dae23a25c8a646e1418d1a1779597d24f81;hb=baf46b9edc7dc3665c7eaf9d1684b157efb09e1a;hp=4cff580a7791574891be630de820066ebb6c42fd;hpb=03e7dbecf3e631d5fb5884b16e3eafe4c14624c3;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Method/Augmented.pm b/lib/Moose/Meta/Method/Augmented.pm index 4cff580..8e318da 100644 --- a/lib/Moose/Meta/Method/Augmented.pm +++ b/lib/Moose/Meta/Method/Augmented.pm @@ -3,9 +3,8 @@ package Moose::Meta::Method::Augmented; use strict; use warnings; -use Carp 'confess'; - -our $VERSION = '0.53'; +our $VERSION = '0.72_01'; +$VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; use base 'Moose::Meta::Method'; @@ -23,11 +22,11 @@ sub new { my $super = $meta->find_next_method_by_name($name); (defined $super) - || confess "You cannot augment '$name' because it has no super method"; + || $meta->throw_error("You cannot augment '$name' because it has no super method", data => $name); my $_super_package = $super->package_name; - # BUT!,... if this is an overriden method .... - if ($super->isa('Moose::Meta::Method::Overriden')) { + # BUT!,... if this is an overridden method .... + if ($super->isa('Moose::Meta::Method::Overridden')) { # we need to be sure that we actually # find the next method, which is not # an 'override' method, the reason is @@ -67,19 +66,42 @@ Moose::Meta::Method::Augmented - A Moose Method metaclass for augmented methods =head1 DESCRIPTION -This class implements method augmenting logic for the L C keyword. +This class implements method augmentation logic for the L +C keyword. + +The augmentation subroutine reference will be invoked explicitly using +the C keyword from the parent class's method definition. -This involves setting up C for the superclass body, and dispatching to -the superclass from the normal body. +=head1 INHERITANCE -The subclass definition (the augmentation itself) will be invoked explicitly -using the C keyword from the parent class's method definition. +C is a subclass of L. =head1 METHODS =over 4 -=item B +=item B<< Moose::Meta::Method::Augmented->new(%options) >> + +This constructs a new object. It accepts the following options: + +=over 8 + +=item * class + +The metaclass object for the class in which the augmentation is being +declared. This option is required. + +=item * name + +The name of the method which we are augmenting. This method must exist +in one of the class's superclasses. This option is required. + +=item * method + +The subroutine reference which implements the augmentation. This +option is required. + +=back =back @@ -95,7 +117,7 @@ Yuval Kogman Enothingmuch@cpan.orgE =head1 COPYRIGHT AND LICENSE -Copyright 2006-2008 by Infinity Interactive, Inc. +Copyright 2006-2009 by Infinity Interactive, Inc. L