summaryrefslogtreecommitdiff
path: root/inc/SimpleProvides.pm
diff options
context:
space:
mode:
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;