Code for forward compat with Moose 1.99+
[gitmo/MooseX-UndefTolerant.git] / lib / MooseX / UndefTolerant / Class.pm
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;