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