my @attrs = $meta->compute_all_applicable_attributes;
my $buildall = $class->_generate_BUILDALL($meta);
- my $buildargs = $class->_generate_BUILDARGS();
+ my $buildargs = $class->_generate_BUILDARGS($meta);
my $processattrs = $class->_generate_processattrs($meta, \@attrs);
my $code = <<"...";
}
sub _generate_BUILDARGS {
- <<'...';
+ my $self = shift;
+ my $meta = shift;
+
+ if ($meta->name->can('BUILDARGS') != Mouse::Object->can('BUILDARGS')) {
+ return '$class->BUILDARGS(@_)';
+ }
+
+ return <<'...';
do {
if ( scalar @_ == 1 ) {
if ( defined $_[0] ) {
foreach my $class qw(Foo Bar) {
is( $class->new->bar, undef, "no args" );
is( $class->new( bar => 42 )->bar, 42, "normal args" );
- SKIP: {
- skip "this feature doesn't supported by Mouse", 1;
- is( $class->new( 37 )->bar, 37, "single arg" );
- };
- {
- my $o = $class->new(bar => 42, baz => 47);
- is($o->bar, 42, '... got the right bar');
- is($o->baz, 47, '... got the right bar');
- }
- SKIP: {
- skip "this feature doesn't supported by Mouse", 2;
- {
- my $o = $class->new(42, baz => 47);
- is($o->bar, 42, '... got the right bar');
- is($o->baz, 47, '... got the right bar');
- }
- };
+ is( $class->new( 37 )->bar, 37, "single arg" );
+ my $o = $class->new(bar => 42, baz => 47);
+ is($o->bar, 42, '... got the right bar');
+ is($o->baz, 47, '... got the right bar');
+ my $ob = $class->new(42, baz => 47);
+ is($ob->bar, 42, '... got the right bar');
+ is($ob->baz, 47, '... got the right bar');
}