summaryrefslogtreecommitdiff
path: root/lib/Carton/Dist.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Carton/Dist.pm')
-rw-r--r--lib/Carton/Dist.pm37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/Carton/Dist.pm b/lib/Carton/Dist.pm
new file mode 100644
index 0000000..9310e70
--- /dev/null
+++ b/lib/Carton/Dist.pm
@@ -0,0 +1,37 @@
+package Carton::Dist;
+use strict;
+use Class::Tiny {
+ name => undef,
+ pathname => undef,
+ provides => sub { +{} },
+ requirements => sub { $_[0]->_build_requirements },
+};
+
+use CPAN::Meta;
+
+sub add_string_requirement { shift->requirements->add_string_requirement(@_) }
+sub required_modules { shift->requirements->required_modules(@_) }
+sub requirements_for_module { shift->requirements->requirements_for_module(@_) }
+
+sub is_core { 0 }
+
+sub distfile {
+ my $self = shift;
+ $self->pathname;
+}
+
+sub _build_requirements {
+ CPAN::Meta::Requirements->new;
+}
+
+sub provides_module {
+ my($self, $module) = @_;
+ exists $self->provides->{$module};
+}
+
+sub version_for {
+ my($self, $module) = @_;
+ $self->provides->{$module}{version};
+}
+
+1;