X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FClass%2FMOP%2FMethod%2FGenerated.pm;h=53a78d70388e4e45ca77b57e384a53cddc4e1ead;hb=88b8ac17305b1bf7f1795337d7d443aec0bd3057;hp=701c247d7fc7861a184efa514254213a7b8f4d5d;hpb=2e5c1a3f4fda1d126ef237a3ee3ef13302ead57c;p=gitmo%2FClass-MOP.git diff --git a/lib/Class/MOP/Method/Generated.pm b/lib/Class/MOP/Method/Generated.pm index 701c247..53a78d7 100644 --- a/lib/Class/MOP/Method/Generated.pm +++ b/lib/Class/MOP/Method/Generated.pm @@ -6,7 +6,8 @@ use warnings; use Carp 'confess'; -our $VERSION = '0.65'; +our $VERSION = '0.70_01'; +$VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; use base 'Class::MOP::Method'; @@ -18,23 +19,26 @@ sub new { ($options{package_name} && $options{name}) || confess "You must supply the package_name and name parameters $Class::MOP::Method::UPGRADE_ERROR_TEXT"; - my $self = bless { - # from our superclass - '&!body' => undef, - '$!package_name' => $options{package_name}, - '$!name' => $options{name}, - # specific to this subclass - '$!is_inline' => ($options{is_inline} || 0), - } => $class; + my $self = $class->_new(\%options); $self->initialize_body; return $self; } +sub _new { + my $class = shift; + my $options = @_ == 1 ? $_[0] : {@_}; + + $options->{is_inline} ||= 0; + $options->{body} ||= undef; + + bless $options, $class; +} + ## accessors -sub is_inline { (shift)->{'$!is_inline'} } +sub is_inline { (shift)->{'is_inline'} } sub initialize_body { confess "No body to initialize, " . __PACKAGE__ . " is an abstract base class";