X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FClass%2FMOP%2FMethod%2FAccessor.pm;h=f0bf1affb0af6efe5be64e783ebe1a2935312487;hb=3a683b397673ee5ed7788873ff77f0db92eda011;hp=afa4340a68991954b31e81075480140821e10612;hpb=8683db0e09d4b53db67d19f36810e4070e264d2d;p=gitmo%2FClass-MOP.git diff --git a/lib/Class/MOP/Method/Accessor.pm b/lib/Class/MOP/Method/Accessor.pm index afa4340..f0bf1af 100644 --- a/lib/Class/MOP/Method/Accessor.pm +++ b/lib/Class/MOP/Method/Accessor.pm @@ -7,7 +7,8 @@ use warnings; use Carp 'confess'; use Scalar::Util 'blessed', 'weaken'; -our $VERSION = '0.65'; +our $VERSION = '0.73'; +$VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; use base 'Class::MOP::Method::Generated'; @@ -28,16 +29,7 @@ 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 - 'attribute' => $options{attribute}, - 'is_inline' => ($options{is_inline} || 0), - 'accessor_type' => $options{accessor_type}, - } => $class; + my $self = $class->_new(\%options); # we don't want this creating # a cycle in the code, if not @@ -49,6 +41,15 @@ sub new { return $self; } +sub _new { + my $class = shift; + my $options = @_ == 1 ? $_[0] : {@_}; + + $options->{is_inline} ||= 0; + + return bless $options, $class; +} + ## accessors sub associated_attribute { (shift)->{'attribute'} } @@ -200,7 +201,7 @@ Class::MOP::Method::Accessor - Method Meta Object for accessors accessor_type => 'reader', ); - $reader->body->($instance); # call the reader method + $reader->body->execute($instance); # call the reader method =head1 DESCRIPTION