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
|
use 5.006; # pragmas
use strict;
use warnings;
package Test::File::ShareDir::Dist;
our $VERSION = '1.000005';
# ABSTRACT: Simplified dist oriented ShareDir tester
our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
use File::ShareDir 1.00 qw();
sub import {
my ( undef, $arg ) = @_;
if ( not ref $arg or 'HASH' ne ref $arg ) {
require Carp;
return Carp::croak q[Must pass a hashref];
}
my %input_config = %{$arg};
require Test::File::ShareDir::Object::Dist;
my $params = {};
for my $key ( keys %input_config ) {
next unless $key =~ /\A-(.*)\z/msx;
$params->{$1} = delete $input_config{$key};
}
$params->{dists} = {} if not exists $params->{dists};
for my $key ( keys %input_config ) {
$params->{dists}->{$key} = $input_config{$key};
}
my $dist_object = Test::File::ShareDir::Object::Dist->new($params);
$dist_object->install_all_dists();
$dist_object->add_to_inc();
return 1;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Test::File::ShareDir::Dist - Simplified dist oriented ShareDir tester
=head1 VERSION
version 1.000005
=head1 SYNOPSIS
use Test::File::ShareDir::Dist {
'-root' => 'some/root/path',
'Dist-Zilla-Plugin-Foo' => 'share/DZPF',
};
C<-root> is optional, and defaults to C<cwd>
B<NOTE:> There's a bug prior to 5.18 with C<< use Foo { -key => } >>, so for backwards compatibility, make sure you either quote
the key: C<< use Foo { '-key' => } >>, or make it the non-first key.
=begin MetaPOD::JSON v1.1.0
{
"namespace":"Test::File::ShareDir::Dist",
"interface":"exporter"
}
=end MetaPOD::JSON
=head1 AUTHOR
Kent Fredric <kentnl@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2014 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
|