/usr/share/perl5/KiokuDB/Meta/Instance.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 | package KiokuDB::Meta::Instance;
BEGIN {
$KiokuDB::Meta::Instance::AUTHORITY = 'cpan:NUFFIN';
}
{
$KiokuDB::Meta::Instance::VERSION = '0.56';
}
use Moose::Role;
# ABSTRACT: Moose::Meta::Instance level support for lazy loading.
use namespace::clean -except => 'meta';
around 'get_slot_value' => sub {
my ( $next, $self, $instance, $slot, @args ) = @_;
my $value = $self->$next($instance, $slot, @args);
if ( ref($value) eq 'KiokuDB::Thunk' ) {
$value = $value->vivify($instance);
}
return $value;
};
around 'inline_get_slot_value' => sub {
my ( $next, $self, $instance_expr, $slot_expr, @args ) = @_;
my $get_expr = $self->$next($instance_expr, $slot_expr, @args);
return 'do {
my $value = ' . $get_expr . ';
if ( ref($value) eq "KiokuDB::Thunk" ) {
$value = $value->vivify(' . $instance_expr . ');
}
$value;
}'
};
sub inline_get_is_lvalue { 0 }
__PACKAGE__
__END__
=pod
=head1 NAME
KiokuDB::Meta::Instance - Moose::Meta::Instance level support for lazy loading.
=head1 VERSION
version 0.56
=head1 SYNOPSIS
# use KiokuDB::Meta::Attribute::Lazy
=head1 DESCRIPTION
This role is applied to the meta instance class automatically by
L<KiokuDB::Class>. When it finds L<KiokuDB::Thunk> objects in the low level
attribute storage it will cause them to be loaded.
This allows your L<Moose::Meta::Attributes> to remain oblivious to the fact
that the value is deferred, making sure that all the type constraints, lazy
defaults, and various other L<Moose> features continue to work normally.
=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
|