diff options
author | Smit Shah <who828@gmail.com> | 2013-12-09 14:25:46 +0530 |
---|---|---|
committer | Andre Arko <andre@arko.net> | 2013-12-18 15:09:31 -0800 |
commit | 4b5964da34b84ec7779e9a757dffe99eed1b5ce9 (patch) | |
tree | 9b4e0ea2b0085810717ef3a2e1a59c79870dbc64 | |
parent | 3b17d58d49079ab82730b39cabf5e7cae3c2c99c (diff) | |
download | bundler-4b5964da34b84ec7779e9a757dffe99eed1b5ce9.tar.gz |
Refactored check_rubygems_cache_dir using group_by
-rw-r--r-- | lib/bundler/installer.rb | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/lib/bundler/installer.rb b/lib/bundler/installer.rb index 000d45fc93..8df0829bb7 100644 --- a/lib/bundler/installer.rb +++ b/lib/bundler/installer.rb @@ -208,24 +208,15 @@ module Bundler def check_rubygems_cache_dir require 'digest' cached_gems = Dir["#{Bundler.rubygems.gem_dir}/cache/*.gem"] - sizes = cached_gems.each_with_object({}) do |f, h| - size = File.size(f) - h[size] ||= [] - h[size] << f - end + sizes = cached_gems.group_by { |f| File.size(f) } gems_with_same_size = sizes.select { |i, ns| ns.size > 1} - sha1_gems = gems_with_same_size.values.flatten.each_with_object({}) do |f, h| - sha1 = Digest::SHA1.hexdigest(File.read(f)) - h[sha1] ||= [] - h[sha1] << f - end - + sha1_gems = gems_with_same_size.values.flatten.group_by { |f| Digest::SHA1.hexdigest(File.read(f)) } corrupted_gems = sha1_gems.select { |i, ns| ns.size > 1 } unless corrupted_gems.empty? - Bundler.ui.warn "Following gems are corrupted #{corrupted_gems.values}"\ + Bundler.ui.warn "Following gems are corrupted #{corrupted_gems.values.flatten}\n"\ "Please report this issue with the .bundle/install.log logfile" end end |