summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatsuhiko Miyagawa <miyagawa@bulknews.net>2013-06-03 18:05:24 +0900
committerTatsuhiko Miyagawa <miyagawa@bulknews.net>2013-06-03 18:05:24 +0900
commit0565f888db8f5b3c29b3ae7d9ad65c1f1b0abc87 (patch)
tree0364a3af68cd80ffc1a5d0013cb39b15fa81cbc4
parent9b3be8951a1a3e024461dd52979fdc1d7dc88c59 (diff)
downloadcarton-0565f888db8f5b3c29b3ae7d9ad65c1f1b0abc87.tar.gz
Change $lock->find logic to search for provides maps. Return Dependency objects
-rw-r--r--lib/Carton/CLI.pm4
-rw-r--r--lib/Carton/Lock.pm9
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm
index 2e7f852..b3bf6bd 100644
--- a/lib/Carton/CLI.pm
+++ b/lib/Carton/CLI.pm
@@ -228,9 +228,9 @@ sub cmd_show {
or $self->error("Can't find carton.lock: Run `carton install`\n");
for my $module (@args) {
- my $meta = $lock->find($module)
+ my $dependency = $lock->find($module)
or $self->error("Couldn't locate $module in carton.lock\n");
- $self->print( Carton::Util::to_json($meta) );
+ $self->print( $dependency->dist . "\n" );
}
}
diff --git a/lib/Carton/Lock.pm b/lib/Carton/Lock.pm
index 192800d..02d8651 100644
--- a/lib/Carton/Lock.pm
+++ b/lib/Carton/Lock.pm
@@ -32,7 +32,14 @@ sub dependencies {
sub find {
my($self, $module) = @_;
- $self->modules->{$module};
+
+ for my $meta (values %{$_[0]->modules}) {
+ if ($meta->{provides}{$module}) {
+ return Carton::Dependency->new( $self->modules->{$meta->{name}} );
+ }
+ }
+
+ return;
}
sub index {