X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FAttribute.pm;h=96833420c149d5271a548c8b4219cf1a3deb5f25;hb=67fb42e0ee9e0d69d84de9908acfe34ef2c8fb49;hp=f0766689602cf7895bbe952600d4121dc4821aba;hpb=20e25eb99981654f64a6b4a9139e55ddca399981;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Meta/Attribute.pm b/lib/Mouse/Meta/Attribute.pm index f076668..9683342 100644 --- a/lib/Mouse/Meta/Attribute.pm +++ b/lib/Mouse/Meta/Attribute.pm @@ -7,17 +7,16 @@ use Carp 'confess'; use Scalar::Util (); sub new { - my $class = shift; - my %args = @_; + my ($class, $name, %options) = @_; - my $name = $args{name}; + $options{name} = $name; - $args{init_arg} = $name - unless exists $args{init_arg}; + $options{init_arg} = $name + unless exists $options{init_arg}; - $args{is} ||= ''; + $options{is} ||= ''; - bless \%args, $class; + bless \%options, $class; } sub name { $_[0]->{name} } @@ -76,7 +75,7 @@ sub generate_accessor { my $accessor = "sub {\n"; if ($attribute->_is_metadata eq 'rw') { - $accessor .= 'if (scalar(@_) >= 2) {' . "\n"; + $accessor .= 'if (@_ >= 2) {' . "\n"; my $value = '$_[1]'; @@ -232,7 +231,7 @@ sub create { $args{find_type_constraint} = $code; } - my $attribute = $self->new(%args); + my $attribute = $self->new($name, %args); $attribute->_create_args(\%args);