Commit | Line | Data |
---|---|---|
d6ce838b | 1 | package MooseX::UndefTolerant::Class; |
2 | use Moose::Role; | |
3 | ||
e5d1b642 | 4 | around _inline_init_attr_from_constructor => sub { |
5 | my $orig = shift; | |
6 | my $self = shift; | |
7 | my ($attr, $idx) = @_; | |
d6ce838b | 8 | |
e5d1b642 | 9 | my @source = $self->$orig(@_); |
d6ce838b | 10 | |
e5d1b642 | 11 | my $init_arg = $attr->init_arg; |
d6ce838b | 12 | |
e5d1b642 | 13 | return |
14 | "if ( exists \$params->{$init_arg} && defined \$params->{$init_arg} ) {", | |
15 | @source, | |
16 | '} else {', | |
17 | "delete \$params->{$init_arg};", | |
18 | '}'; | |
19 | }; | |
d6ce838b | 20 | |
21 | no Moose::Role; | |
22 | ||
23 | 1; |