fix typo - was testing the wrong class here and missing an important test case
[gitmo/MooseX-UndefTolerant.git] / lib / MooseX / UndefTolerant / Class.pm
1 package MooseX::UndefTolerant::Class;
2
3 # applied to metaclass, for Moose >= 1.9900
4
5 use strict;
6 use warnings;
7
8 use Moose::Role;
9
10 around _inline_init_attr_from_constructor => sub {
11     my $orig = shift;
12     my $self = shift;
13     my ($attr, $idx) = @_;
14
15     my @source = $self->$orig(@_);
16
17     my $init_arg = $attr->init_arg;
18
19     return
20         "if ( exists \$params->{$init_arg} && defined \$params->{$init_arg} ) {",
21             @source,
22         '} else {',
23             "delete \$params->{$init_arg};",
24         '}';
25 };
26
27 no Moose::Role;
28 1;