line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package # Hide from the indexer for now until docs are added later. |
2
|
|
|
|
|
|
|
MooseX::ExtraArgs::Meta::Object; |
3
|
1
|
|
|
1
|
|
11513
|
use Moose::Role; |
|
1
|
|
|
|
|
4107
|
|
|
1
|
|
|
|
|
3
|
|
4
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
has extra_args => ( |
6
|
|
|
|
|
|
|
is => 'ro', |
7
|
|
|
|
|
|
|
isa => 'HashRef', |
8
|
|
|
|
|
|
|
required => 1, |
9
|
|
|
|
|
|
|
init_arg => '_extra_args', |
10
|
|
|
|
|
|
|
); |
11
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
around BUILDARGS => sub{ |
13
|
|
|
|
|
|
|
my $orig = shift; |
14
|
|
|
|
|
|
|
my $self = shift; |
15
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
my $args = $self->$orig( @_ ); |
17
|
|
|
|
|
|
|
$args->{_extra_args} = { %$args }; |
18
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
my $meta = $self->meta(); |
20
|
|
|
|
|
|
|
foreach my $attr ($meta->get_all_attributes()) { |
21
|
|
|
|
|
|
|
next if !$attr->has_init_arg(); |
22
|
|
|
|
|
|
|
delete( $args->{_extra_args}->{ $attr->init_arg() } ); |
23
|
|
|
|
|
|
|
} |
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
return $args; |
26
|
|
|
|
|
|
|
}; |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
1; |