diff options
author | Tatsuhiko Miyagawa <miyagawa@bulknews.net> | 2013-06-03 18:05:24 +0900 |
---|---|---|
committer | Tatsuhiko Miyagawa <miyagawa@bulknews.net> | 2013-06-03 18:05:24 +0900 |
commit | 0565f888db8f5b3c29b3ae7d9ad65c1f1b0abc87 (patch) | |
tree | 0364a3af68cd80ffc1a5d0013cb39b15fa81cbc4 | |
parent | 9b3be8951a1a3e024461dd52979fdc1d7dc88c59 (diff) | |
download | carton-0565f888db8f5b3c29b3ae7d9ad65c1f1b0abc87.tar.gz |
Change $lock->find logic to search for provides maps. Return Dependency objects
-rw-r--r-- | lib/Carton/CLI.pm | 4 | ||||
-rw-r--r-- | lib/Carton/Lock.pm | 9 |
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 { |