summaryrefslogtreecommitdiff
path: root/inc/SimpleProvides.pm
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2015-06-06 17:50:16 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2015-06-06 17:50:16 +0000
commit5ac2026f7eed78958d69d051e7a8e993dcf51205 (patch)
tree298c3d2f08bdfe5689998b11892d72a897985be1 /inc/SimpleProvides.pm
downloadMoose-tarball-5ac2026f7eed78958d69d051e7a8e993dcf51205.tar.gz
Diffstat (limited to 'inc/SimpleProvides.pm')
-rw-r--r--inc/SimpleProvides.pm34
1 files changed, 34 insertions, 0 deletions
diff --git a/inc/SimpleProvides.pm b/inc/SimpleProvides.pm
new file mode 100644
index 0000000..3d768b1
--- /dev/null
+++ b/inc/SimpleProvides.pm
@@ -0,0 +1,34 @@
+use strict;
+use warnings;
+package inc::SimpleProvides;
+
+use Moose;
+with 'Dist::Zilla::Role::MetaProvider',
+ 'Dist::Zilla::Role::FileFinderUser' => {
+ default_finders => [ ':InstallModules' ], # this is overridden in dist.ini!
+ },
+;
+
+sub metadata
+{
+ my $self = shift;
+
+ my $version = $self->zilla->version;
+
+ return +{
+ provides => {
+ map {
+ # this is an awful hack and assumes ascii package names:
+ # please do not cargo-cult this code elsewhere. The proper
+ # thing to do is to crack open the file and read the pod name.
+ my $filename = $_->name;
+ (my $package = $filename) =~ s{[/\\]}{::}g;
+ $package =~ s/^lib:://;
+ $package =~ s/\.pod$//;
+ $package => { file => $filename, version => $version }
+ } @{$self->found_files},
+ }
+ };
+}
+
+__PACKAGE__->meta->make_immutable;