/usr/share/perl5/MooX/BuildArgs.pm is in libmoox-buildargs-perl 0.04-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | package MooX::BuildArgs;
$MooX::BuildArgs::VERSION = '0.04';
=head1 NAME
MooX::BuildArgs - Save instantiation arguments for later use.
=head1 SYNOPSIS
package Foo;
use Moo;
with 'MooX::BuildArgs';
has bar => (is => 'ro');
my $foo = Foo->new( bar => 32 );
print $foo->build_args->{bar}; # 32
=head1 DESCRIPTION
It is often useful to be able to access the arguments that were
used to create an object in their unadulterated form, before any
coercions or init_args have changed them. This L<Moo> role
provides the arguments via the L</build_args> attribute.
Note that no attempt is made to weaken the args. So, if you use
this module and you have attributes with C<weak_ref> set the
references will not be weakened within L</build_args>.
=cut
use Moo::Role;
use strictures 2;
use namespace::clean;
with 'MooX::BuildArgsHooks';
around FINALIZE_BUILDARGS => sub{
my ($orig, $class, $args) = @_;
$args = $class->$orig( $args );
return $class->FINALIZE_BUILD_ARGS_BUILDARGS( $args );
};
sub FINALIZE_BUILD_ARGS_BUILDARGS {
my ($class, $args) = @_;
$args->{_build_args} = { %$args };
return $args;
}
=head1 ATTRIBUTES
=head2 build_args
my $args_hashref = $object->build_args();
Returns a hashref containing the captured arguments.
=cut
has build_args => (
is => 'ro',
init_arg => '_build_args',
);
1;
__END__
=head1 SEE ALSO
=over
=item *
L<MooX::BuildArgsHooks>
=item *
L<MooX::MethodProxyArgs>
=item *
L<MooX::Rebuild>
=item *
L<MooX::SingleArg>
=back
=head1 AUTHOR
Aran Clary Deltac <bluefeet@gmail.com>
=head1 CONTRIBUTORS
=over
=item *
Peter Pentchev <roamE<64>ringlet.net>
=back
=head1 LICENSE
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
|