X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-ClassAttribute.git;a=blobdiff_plain;f=lib%2FMooseX%2FClassAttribute%2FTrait%2FAttribute.pm;h=5519c5423b7c361d9669e565e76c781e2b535a39;hp=14323315c6ab3fa081cb7182965e8f726bbc3447;hb=e5fa95baab2413d6eea127014ba8fa291ce3ab3e;hpb=37ecf6ad2030c0e39e6123f682d8f7f61f3ef4b4 diff --git a/lib/MooseX/ClassAttribute/Trait/Attribute.pm b/lib/MooseX/ClassAttribute/Trait/Attribute.pm index 1432331..5519c54 100644 --- a/lib/MooseX/ClassAttribute/Trait/Attribute.pm +++ b/lib/MooseX/ClassAttribute/Trait/Attribute.pm @@ -42,7 +42,8 @@ sub _initialize { my $metaclass = shift; if ( $self->has_default() ) { - $self->set_value( undef, $self->default() ); + $self->set_value( undef, + $self->default( $self->associated_class() ) ); } elsif ( $self->has_builder() ) { $self->set_value( undef, $self->_call_builder( $metaclass->name() ) ); @@ -55,8 +56,8 @@ around default => sub { my $default = $self->$orig(); - if ( $self->is_default_a_coderef() ) { - return $default->( $self->associated_class() ); + if ( $self->is_default_a_coderef() && @_ ) { + return $default->(@_); } return $default;