/usr/share/perl5/KiokuDB/TypeMap/Shadow.pm is in libkiokudb-perl 0.56-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 | package KiokuDB::TypeMap::Shadow;
BEGIN {
$KiokuDB::TypeMap::Shadow::AUTHORITY = 'cpan:NUFFIN';
}
{
$KiokuDB::TypeMap::Shadow::VERSION = '0.56';
}
use Moose;
# ABSTRACT: Try a list of KiokuDB::TypeMaps in order
use namespace::clean -except => 'meta';
with qw(KiokuDB::Role::TypeMap);
has typemaps => (
does => "ArrayRef[KiokuDB::Role::TypeMap]",
is => "ro",
required => 1,
);
sub resolve {
my ( $self, @args ) = @_;
foreach my $typemap ( @{ $self->typemaps } ) {
if ( my $entry = $typemap->resolve(@args) ) {
return $entry;
}
}
return;
}
__PACKAGE__->meta->make_immutable;
__PACKAGE__
__END__
=pod
=head1 NAME
KiokuDB::TypeMap::Shadow - Try a list of KiokuDB::TypeMaps in order
=head1 VERSION
version 0.56
=head1 SYNOPSIS
KiokuDB->new(
backend => ...,
typemap => KiokuDB::TypeMap::Shadow->new(
typemaps => [
$first,
$second,
],
),
);
=head1 DESCRIPTION
This class is useful for performing mixin inheritance like merging of typemaps,
by shadowing an ordered list.
This is used internally to overlay the user typemap on top of the
L<KiokuDB::TypeMap::Default> instance provided by the backend.
This differs from using C<includes> in L<KiokuDB::TypeMap> because that
inclusion is computed symmetrically, like roles.
=head1 AUTHOR
Yuval Kogman <nothingmuch@woobling.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Yuval Kogman, Infinity Interactive.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|