Server IP : 85.214.239.14 / Your IP : 18.226.28.97 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/cwd/usr/share/perl5/Test/File/ShareDir/Object/ |
Upload File : |
use 5.006; # pragmas use strict; use warnings; package Test::File::ShareDir::Object::Inc; our $VERSION = '1.001002'; # ABSTRACT: Shared tempdir object code to inject into @INC our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY my @cache; use Class::Tiny { tempdir => sub { require Path::Tiny; my $dir = Path::Tiny::tempdir( CLEANUP => 1 ); push @cache, $dir; # explicit keepalive return $dir; }, module_tempdir => sub { my ($self) = @_; my $dir = $self->tempdir->child('auto/share/module'); $dir->mkpath(); return $dir->absolute; }, dist_tempdir => sub { my ($self) = @_; my $dir = $self->tempdir->child('auto/share/dist'); $dir->mkpath(); return $dir->absolute; }, }; use Carp qw( carp ); sub add_to_inc { my ($self) = @_; carp 'add_to_inc deprecated sice 1.001000, use register instead'; return $self->register; } sub register { my ($self) = @_; unshift @INC, $self->tempdir->stringify; return; } sub clear { my ($self) = @_; ## no critic (Variables::RequireLocalizedPunctuationVars) @INC = grep { ref or $_ ne $self->tempdir->stringify } @INC; return; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Test::File::ShareDir::Object::Inc - Shared tempdir object code to inject into @INC =head1 VERSION version 1.001002 =head1 SYNOPSIS use Test::File::ShareDir::Object::Inc; my $inc = Test::File::ShareDir::Object::Inc->new(); $inc->tempdir() # add files to here $inc->module_tempdir() # or here $inc->dist_tempdir() # or here $inc->add_to_inc; =head1 DESCRIPTION This class doesn't do very much on its own. It simply exists to facilitate C<tempdir> creation, and the injection of those C<tempdir>'s into C<@INC> =head1 METHODS =head2 C<add_to_inc> B<DEPRECATED:> Use C<register> instead. =head2 C<register> $instance->register; Allows this C<Inc> to be used. Presently, this injects the associated C<tempdir> into C<@INC> I<Since 1.001000> =head2 C<clear> $instance->clear(); Prevents this C<Inc> from being used. Presently, this removes the C<tempdir> from C<@INC> I<Since 1.001000> =head1 ATTRIBUTES =head2 C<tempdir> A path to a C<tempdir> of some description. =head2 C<module_tempdir> The C<module> C<ShareDir> base directory within the C<tempdir> =head2 C<dist_tempdir> The C<dist> C<ShareDir> base directory within the C<tempdir> =begin MetaPOD::JSON v1.1.0 { "namespace":"Test::File::ShareDir::Object::Inc", "interface":"class", "inherits":"Class::Tiny::Object" } =end MetaPOD::JSON =head1 AUTHOR Kent Fredric <kentnl@cpan.org> =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2017 by Kent Fredric <kentnl@cpan.org>. 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