diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2010-02-03 22:04:00 -0800 |
---|---|---|
committer | Carl Lerche <carllerche@mac.com> | 2010-02-03 22:48:37 -0800 |
commit | 78c53135a3d11d79df337df5e65953f5a3c699da (patch) | |
tree | 614b8dbc1315d6d6451bea8839b3bfbcc96c9fe7 | |
parent | a8cbf77bab3d2dd4a1124c4d00f44ebcff957245 (diff) | |
download | bundler-78c53135a3d11d79df337df5e65953f5a3c699da.tar.gz |
Support multiple :require per gem
Signed-off-by: Carl Lerche <carllerche@mac.com>
-rw-r--r-- | lib/bundler/dependency.rb | 1 | ||||
-rw-r--r-- | lib/bundler/environment.rb | 6 | ||||
-rw-r--r-- | spec/runtime/require_spec.rb | 7 |
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 |