Astro-SpaceTrack
view release on metacpan or search on metacpan
inc/My/Module/Meta.pm view on Meta::CPAN
}
sub provides {
my $provides;
local $@ = undef;
eval {
require CPAN::Meta;
require ExtUtils::Manifest;
require Module::Metadata;
my $manifest;
{
local $SIG{__WARN__} = sub {};
$manifest = ExtUtils::Manifest::maniread();
}
keys %{ $manifest || {} }
or return;
# Skeleton so we can use should_index_file() and
# should_index_package().
my $meta = CPAN::Meta->new( {
name => 'Euler',
version => 2.71828,
no_index => no_index(),
},
);
# The Module::Metadata docs say not to use
# package_versions_from_directory() directly, but the 'files =>'
# version of provides() is broken, and has been known to be so
# since 2014, so it's not getting fixed any time soon. So:
foreach my $fn ( sort keys %{ $manifest } ) {
$fn =~ m/ [.] pm \z /smx
or next;
my $pvd = Module::Metadata->package_versions_from_directory(
undef, [ $fn ] );
foreach my $pkg ( keys %{ $pvd } ) {
$meta->should_index_package( $pkg )
and $meta->should_index_file( $pvd->{$pkg}{file} )
and $provides->{$pkg} = $pvd->{$pkg};
}
}
1;
} or return;
return ( provides => $provides );
}
sub requires {
my ( undef, @extra ) = @_; # Invocant unused
return {
'Carp' => 0,
'Config' => 0,
'Exporter' => 0,
'Getopt::Long' => 2.39, # For getoptionsfromarray
'HTTP::Date' => 0,
'HTTP::Request' => 0,
'HTTP::Response' => 0,
'HTTP::Status' => 6.03, # For the teapot status
'IO::File' => 0,
'IO::Uncompress::Unzip' => 0, # For McCants
'JSON' => 0, # For Space Track v2
'List::Util' => 0, # For Space Track v2 FILE tracking
'LWP::UserAgent' => 0,
'LWP::Protocol::https' => 0, # Space track needs as of 11-Apr-2011
'Mozilla::CA' => 20141217,
# There is no direct dependency
# on this, but some CPAN testers
# consistently fail with CERT
# problems, and I know this
# works.
'POSIX' => 0,
'Scalar::Util' => 1.07, # for openhandle.
'Text::ParseWords' => 0,
'Time::Local' => 0,
'URI' => 0,
# 'URI::Escape' => 0, # For Space Track v2
'constant' => 0,
'strict' => 0,
'warnings' => 0,
@extra,
};
}
sub requires_perl {
return 5.006002;
}
sub script_files {
return [
'script/SpaceTrack',
];
}
sub version_from {
return 'lib/Astro/SpaceTrack.pm';
}
1;
__END__
=head1 NAME
My::Module::Meta - Information needed to build Astro::SpaceTrack
=head1 SYNOPSIS
use lib qw{ inc };
use My::Module::Meta;
my $meta = My::Module::Meta->new();
use JSON;
print "Required modules:\n", to_json(
$meta->requires(), { pretty => 1 } );
=head1 DETAILS
( run in 1.075 second using v1.01-cache-2.11-cpan-39bf76dae61 )