diff options
author | Kevin Radloff <radsaq@gmail.com> | 2011-08-29 15:19:17 -0400 |
---|---|---|
committer | Kevin Radloff <radsaq@gmail.com> | 2011-08-29 15:19:17 -0400 |
commit | 671141da4b005c9ae15ec10aff9a2d85e294bdff (patch) | |
tree | 958bb214e9e7072f671bc1a2bdce227a4f6eb3bf | |
parent | c71d7b41a040267d64c5a6763598cdfba77cf787 (diff) | |
download | bundler-671141da4b005c9ae15ec10aff9a2d85e294bdff.tar.gz |
Don't hose existing load paths if Bundle.setup is called a multiple times with a different set of groups.
-rw-r--r-- | lib/bundler.rb | 3 | ||||
-rw-r--r-- | spec/runtime/setup_spec.rb | 19 |
2 files changed, 20 insertions, 2 deletions
diff --git a/lib/bundler.rb b/lib/bundler.rb index b70f718ab6..bff021e097 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -111,8 +111,7 @@ module Bundler 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 44d433700c..34a2c5df13 100644 --- a/spec/runtime/setup_spec.rb +++ b/spec/runtime/setup_spec.rb @@ -25,6 +25,7 @@ describe "Bundler.setup" do before(:each) do install_gemfile <<-G source "file://#{gem_repo1}" + gem "yard" gem "rack", :group => :test G end @@ -58,6 +59,24 @@ describe "Bundler.setup" do 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 |