diff --git a/lib/bundler.rb b/lib/bundler.rb index 70c93282707..ba1cd5573ae 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -113,8 +113,7 @@ def setup(*groups) unloaded = groups - @completed_groups # Record groups that are now loaded @completed_groups = groups - # Load any groups that are not yet loaded - unloaded.any? ? load.setup(*unloaded) : load + unloaded.any? ? load.setup(*groups) : load end end diff --git a/spec/runtime/setup_spec.rb b/spec/runtime/setup_spec.rb index 44d433700c8..34a2c5df135 100644 --- a/spec/runtime/setup_spec.rb +++ b/spec/runtime/setup_spec.rb @@ -25,6 +25,7 @@ before(:each) do install_gemfile <<-G source "file://#{gem_repo1}" + gem "yard" gem "rack", :group => :test G end @@ -58,6 +59,24 @@ err.should eq("") out.should eq("1.0.0") end + + it "leaves :default available if setup is called twice" do + ruby <<-RUBY + require 'rubygems' + require 'bundler' + Bundler.setup(:default) + Bundler.setup(:default, :test) + + begin + require 'yard' + puts "WIN" + rescue LoadError + puts "FAIL" + end + RUBY + err.should eq("") + out.should match("WIN") + end end it "raises if the Gemfile was not yet installed" do