summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Radloff <radsaq@gmail.com>2011-08-29 15:19:17 -0400
committerKevin Radloff <radsaq@gmail.com>2011-08-29 15:19:17 -0400
commit671141da4b005c9ae15ec10aff9a2d85e294bdff (patch)
tree958bb214e9e7072f671bc1a2bdce227a4f6eb3bf
parentc71d7b41a040267d64c5a6763598cdfba77cf787 (diff)
downloadbundler-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.rb3
-rw-r--r--spec/runtime/setup_spec.rb19
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