use Carp 'confess';
use Scalar::Util 'blessed', 'weaken';
-our $VERSION = '0.62';
+our $VERSION = '0.83';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
# 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();
|| $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
=over 4
-=item B<new (%options)>
+=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<attribute>
This must be an instance of C<Moose::Meta::Attribute> which this
-accessor is being generated for. This paramter is B<required>.
+accessor is being generated for. This options is B<required>.
=item I<delegate_to_method>
=back
-=item B<associated_attribute>
+=item B<< $metamethod->associated_attribute >>
Returns the attribute associated with this method.
-=item B<delegate_to_method>
+=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.
=head1 COPYRIGHT AND LICENSE
-Copyright 2008 by Infinity Interactive, Inc.
+Copyright 2009 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>