File: //usr/local/lib64/perl5/Cpanel/Class/Meta/Method.pm
package Cpanel::Class::Meta::Method;
use strict;
use warnings;
use Carp 'confess';
use Scalar::Util 'reftype', 'blessed';
use base 'Cpanel::Class::Meta::Object';
use overload '&{}' => sub { $_[0]->body }, fallback => 1;
our $VERSION = '1.0.5';
# construction
sub wrap {
my $class = shift;
my $code = shift;
( 'CODE' eq ( reftype($code) || '' ) )
|| confess "You must supply a CODE reference to bless, not (" . ( $code || 'undef' ) . ")";
bless { '&!body' => $code } => blessed($class) || $class;
}
## accessors
sub body { (shift)->{'&!body'} }
sub package_name {
my $code = (shift)->body;
( Class::MOP::get_code_info($code) )[0];
}
sub name {
my $code = (shift)->body;
( Class::MOP::get_code_info($code) )[1];
}
sub fully_qualified_name {
my $code = shift;
$code->package_name . '::' . $code->name;
}
1;