summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2010-02-03 22:04:00 -0800
committerCarl Lerche <carllerche@mac.com>2010-02-03 22:48:37 -0800
commit78c53135a3d11d79df337df5e65953f5a3c699da (patch)
tree614b8dbc1315d6d6451bea8839b3bfbcc96c9fe7
parenta8cbf77bab3d2dd4a1124c4d00f44ebcff957245 (diff)
downloadbundler-78c53135a3d11d79df337df5e65953f5a3c699da.tar.gz
Support multiple :require per gem
Signed-off-by: Carl Lerche <carllerche@mac.com>
-rw-r--r--lib/bundler/dependency.rb1
-rw-r--r--lib/bundler/environment.rb6
-rw-r--r--spec/runtime/require_spec.rb7
3 files changed, 9 insertions, 5 deletions
diff --git a/lib/bundler/dependency.rb b/lib/bundler/dependency.rb
index 897f8e0902..6c82d698da 100644
--- a/lib/bundler/dependency.rb
+++ b/lib/bundler/dependency.rb
@@ -10,6 +10,7 @@ module Bundler
@group = options["group"] || :default
@source = options["source"]
@autorequire = options["require"] || name
+ @autorequire = [@autorequire] unless @autorequire.is_a?(Array)
end
end
end
diff --git a/lib/bundler/environment.rb b/lib/bundler/environment.rb
index d46a7bcecd..0828aeed4e 100644
--- a/lib/bundler/environment.rb
+++ b/lib/bundler/environment.rb
@@ -23,7 +23,9 @@ module Bundler
def require(*groups)
dependencies_for(*groups).each do |dep|
- Kernel.require(dep.autorequire)
+ dep.autorequire.each do |path|
+ Kernel.require(path)
+ end
end
end
@@ -167,7 +169,7 @@ module Bundler
def autorequires_for_groups
groups = dependencies.map { |dep| dep.group }.uniq
groups.inject({}) do |hash, group|
- hash[group] = dependencies_for(group).map { |dep| dep.autorequire }.compact
+ hash[group] = dependencies_for(group).map { |dep| dep.autorequire }.flatten
hash
end
end
diff --git a/spec/runtime/require_spec.rb b/spec/runtime/require_spec.rb
index d2715fbf48..4f191ad8e1 100644
--- a/spec/runtime/require_spec.rb
+++ b/spec/runtime/require_spec.rb
@@ -4,6 +4,7 @@ describe "Bundler.require" do
before :each do
build_lib "one", "1.0.0" do |s|
s.write "lib/baz.rb", "puts 'WIN'"
+ s.write "lib/qux.rb", "puts 'WIN'"
end
build_lib "two", "1.0.0" do |s|
@@ -18,7 +19,7 @@ describe "Bundler.require" do
path "#{lib_path('one-1.0.0')}"
path "#{lib_path('two-1.0.0')}"
path "#{lib_path('three-1.0.0')}"
- gem "one", :group => "bar", :require => "baz"
+ gem "one", :group => "bar", :require => %w(baz qux)
gem "two", :group => "bar"
gem "three", :group => "not"
G
@@ -26,7 +27,7 @@ describe "Bundler.require" do
it "requires the gems" do
run "Bundler.require('bar')"
- out.should == "WIN\nWIN"
+ out.should == "WIN\nWIN\nWIN"
end
it "requires the locked gems" do
@@ -34,6 +35,6 @@ describe "Bundler.require" do
env = bundled_app(".bundle/environment.rb")
out = ruby("require '#{env}'; Bundler.setup('bar'); Bundler.require('bar')")
- out.should == "WIN\nWIN"
+ out.should == "WIN\nWIN\nWIN"
end
end