Commit | Line | Data |
---|---|---|
2d1c57bd | 1 | package MooseX::UndefTolerant::Constructor; |
2 | use Moose::Role; | |
3 | ||
4 | around('_generate_slot_initializer', sub { | |
5 | my $orig = shift; | |
6 | my $self = shift; | |
7 | my $attr = $self->_attributes->[$_[0]]->init_arg; | |
8 | ||
9 | my $tolerant_code = | |
10 | qq# delete \$params->{'$attr'} unless # . | |
11 | qq# exists \$params->{'$attr'} && defined \$params->{'$attr'};\n#; | |
12 | ||
13 | return $tolerant_code . $self->$orig(@_); | |
14 | }); | |
15 | ||
16 | no Moose::Role; | |
17 | ||
18 | 1; |