use warnings;
use Carp 'confess';
-use Scalar::Util 'reftype', 'blessed';
+use Scalar::Util 'blessed';
-our $VERSION = '0.08';
+our $VERSION = '0.65';
our $AUTHORITY = 'cpan:STEVAN';
use base 'Class::MOP::Object';
# construction
sub wrap {
- my ( $class, $code, %params ) = @_;
+ my ( $class, @args ) = @_;
- ('CODE' eq (reftype($code) || ''))
+ unshift @args, 'body' if @args % 2 == 1;
+
+ my %params = @args;
+ my $code = $params{body};
+
+ ('CODE' eq ref($code))
|| confess "You must supply a CODE reference to bless, not (" . ($code || 'undef') . ")";
($params{package_name} && $params{name})
|| confess "You must supply the package_name and name parameters $UPGRADE_ERROR_TEXT";
bless {
- '&!body' => $code,
- '$!package_name' => $params{package_name},
- '$!name' => $params{name},
+ 'body' => $code,
+ 'package_name' => $params{package_name},
+ 'name' => $params{name},
} => blessed($class) || $class;
}
## accessors
-sub body { (shift)->{'&!body'} }
+sub body { (shift)->{'body'} }
# TODO - add associated_class
sub package_name {
my $self = shift;
- $self->{'$!package_name'} ||= (Class::MOP::get_code_info($self->body))[0];
+ $self->{'package_name'} ||= (Class::MOP::get_code_info($self->body))[0];
}
sub name {
my $self = shift;
- $self->{'$!name'} ||= (Class::MOP::get_code_info($self->body))[1];
+ $self->{'name'} ||= (Class::MOP::get_code_info($self->body))[1];
}
sub fully_qualified_name {