CPAN-InGit
view release on metacpan or search on metacpan
lib/CPAN/InGit.pm view on Meta::CPAN
$meta= $cm->as_struct({ version => 2 });
} or warn "Failed to load $file_path/${prefix}META.json: $@";
}
# else look for META.yml
if (!$meta && (my $meta_yml= $files{'META.yml'})) {
eval {
my $cm= CPAN::Meta->load_yaml_string($meta_yml->get_content);
$meta= $cm->as_struct({ version => 2 });
} or warn "Failed to load $file_path/${prefix}META.yml: $@";
}
# TODO: add some fall-back that guesses at prereqs.
$meta //= {};
# If the meta didn't contain "provides", add that using Module::Metadata
if (!$meta->{provides}) {
my $provides= $meta->{provides}= {};
for my $pm_fname (grep /\.pm\z/ && !m{^(t|xt|inc|script|bin)/}, keys %files) {
eval {
open my $pm_fh, '<', $files{$pm_fname}->get_content_by_ref or die;
my $mm= Module::Metadata->new_from_handle($pm_fh, $pm_fname);
for my $pkg (grep $_ ne 'main', $mm->name, $mm->packages_inside) {
$provides->{$pkg}{file}= $pm_fname;
( run in 0.883 second using v1.01-cache-2.11-cpan-7fcb06a456a )