summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmit Shah <who828@gmail.com>2013-12-09 14:25:46 +0530
committerAndre Arko <andre@arko.net>2013-12-18 15:09:31 -0800
commit4b5964da34b84ec7779e9a757dffe99eed1b5ce9 (patch)
tree9b4e0ea2b0085810717ef3a2e1a59c79870dbc64
parent3b17d58d49079ab82730b39cabf5e7cae3c2c99c (diff)
downloadbundler-4b5964da34b84ec7779e9a757dffe99eed1b5ce9.tar.gz
Refactored check_rubygems_cache_dir using group_by
-rw-r--r--lib/bundler/installer.rb15
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