X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FMethod%2FDelegation.pm;h=5591a95e81683805123befbdcf27d0e36211066d;hb=fda1116cb5df99bbaa8baac32385ac39b4f9a036;hp=f2bd2ecec423eef2bc00babe8332ac79339ed0f4;hpb=2351f08e7d635babd893a7951af6ef553ef23cec;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Method/Delegation.pm b/lib/Moose/Meta/Method/Delegation.pm index f2bd2ec..5591a95 100644 --- a/lib/Moose/Meta/Method/Delegation.pm +++ b/lib/Moose/Meta/Method/Delegation.pm @@ -7,7 +7,7 @@ use warnings; use Carp 'confess'; use Scalar::Util 'blessed', 'weaken'; -our $VERSION = '0.59'; +our $VERSION = '0.81'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -72,6 +72,10 @@ sub _initialize_body { # out. However, the more I thought about it, the less I liked it # doing the goto, and I prefered the act of delegation being # actually represented in the stack trace. - SL + # not inlining this, since it won't really speed things up at + # all... the only thing that would end up different would be + # interpolating in $method_to_call, and a bunch of things in the + # error handling that mostly never gets called - doy $self->{body} = sub { my $instance = shift; my $proxy = $instance->$accessor(); @@ -79,7 +83,7 @@ sub _initialize_body { || $self->throw_error( "Cannot delegate $handle_name to $method_to_call because " . "the value of " - . $self->name + . $self->associated_attribute->name . " is not defined", method_name => $method_to_call, object => $instance @@ -117,17 +121,16 @@ methods. =over 4 -=item B +=item B<< Moose::Meta::Method::Delegation->new(%options) >> -This creates the method based on the criteria in C<%options>, -these options are: +This creates the delegation methods based on the provided C<%options>. =over 4 =item I This must be an instance of C which this -accessor is being generated for. This paramter is B. +accessor is being generated for. This options is B. =item I @@ -136,19 +139,20 @@ delegate. This can be either a method name or a code reference. =back -=item B +=item B<< $metamethod->associated_attribute >> Returns the attribute associated with this method. -=item B +=item B<< $metamethod->delegate_to_method >> -Returns the method to which this method delegates. +Returns the method to which this method delegates, as passed to the +constructor. =back =head1 BUGS -All complex software has bugs lurking in it, and this module is no +All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT. @@ -158,7 +162,7 @@ Dave Rolsky Eautarch@urth.orgE =head1 COPYRIGHT AND LICENSE -Copyright 2008 by Infinity Interactive, Inc. +Copyright 2009 by Infinity Interactive, Inc. L