diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2016-09-30 19:30:09 -0500 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2017-04-14 19:25:34 -0500 |
commit | bcd38141ca9714fc3434f6bc2d15fba16d38f5d9 (patch) | |
tree | e61010eebb6b04d93e0cdb1b06f1c0e3437717de | |
parent | f898372166bfe8b77a647a6324dcc4b5e9e8e1c8 (diff) | |
download | bundler-bcd38141ca9714fc3434f6bc2d15fba16d38f5d9.tar.gz |
[SpecSet] Use a set for #for
-rw-r--r-- | lib/bundler/spec_set.rb | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/bundler/spec_set.rb b/lib/bundler/spec_set.rb index bd962922ea..5fd6bd606f 100644 --- a/lib/bundler/spec_set.rb +++ b/lib/bundler/spec_set.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "tsort" require "forwardable" +require "set" module Bundler class SpecSet @@ -15,16 +16,14 @@ module Bundler end def for(dependencies, skip = [], check = false, match_current_platform = false, raise_on_missing = true) - handled = {} + handled = Set.new deps = dependencies.dup specs = [] skip += ["bundler"] loop do break unless dep = deps.shift - next if handled[dep] || skip.include?(dep.name) - - handled[dep] = true + next if !handled.add?(dep) || skip.include?(dep.name) if spec = spec_for_dependency(dep, match_current_platform) specs << spec |