these version checks already happen in the exporter
[gitmo/MooseX-UndefTolerant.git] / lib / MooseX / UndefTolerant / Class.pm
1 package MooseX::UndefTolerant::Class;
2 use Moose::Role;
3
4 around _inline_init_attr_from_constructor => sub {
5     my $orig = shift;
6     my $self = shift;
7     my ($attr, $idx) = @_;
8
9     my @source = $self->$orig(@_);
10
11     my $init_arg = $attr->init_arg;
12
13     return
14         "if ( exists \$params->{$init_arg} && defined \$params->{$init_arg} ) {",
15             @source,
16         '} else {',
17             "delete \$params->{$init_arg};",
18         '}';
19 };
20
21 no Moose::Role;
22
23 1;