diff options
author | Andre Arko <andre@arko.net> | 2014-04-02 00:28:30 +0800 |
---|---|---|
committer | Andre Arko <andre@arko.net> | 2014-04-02 00:38:11 +0800 |
commit | cfa0e047083d98d6ad19c21093fe20a983d03833 (patch) | |
tree | 51d6a4219fb82b1e05cd7453b52ded423ab7f00e | |
parent | 2d63573e6a0a75dc98a90484c81b2e76bb1e8f97 (diff) | |
download | bundler-cfa0e047083d98d6ad19c21093fe20a983d03833.tar.gz |
Handle gems without extensions, too ¬_¬
-rw-r--r-- | lib/bundler/source/rubygems.rb | 8 | ||||
-rw-r--r-- | spec/install/gems/sudo_spec.rb | 6 |
2 files changed, 8 insertions, 6 deletions
diff --git a/lib/bundler/source/rubygems.rb b/lib/bundler/source/rubygems.rb index afeee2b077..3d84df45cd 100644 --- a/lib/bundler/source/rubygems.rb +++ b/lib/bundler/source/rubygems.rb @@ -102,11 +102,11 @@ module Bundler Bundler.rubygems.repository_subdirectories.each do |name| src = File.join(install_path, name, "*") dst = File.join(Bundler.rubygems.gem_dir, name) - if name == "extensions" + if name == "extensions" && Dir.glob(src).any? src = File.join(src, "*/*") - ext_src = Dir.glob(src).first.gsub(src[0..-6], '') - ext_dst = File.join(dst, ext_src) - dst = File.dirname(ext_dst) + ext_src = Dir.glob(src).first + ext_src.gsub!(src[0..-6], '') + dst = File.dirname(File.join(dst, ext_src)) end Bundler.mkdir_p dst Bundler.sudo "cp -R #{src} #{dst}" if Dir[src].any? diff --git a/spec/install/gems/sudo_spec.rb b/spec/install/gems/sudo_spec.rb index 2fccfc0871..60a48ab1e8 100644 --- a/spec/install/gems/sudo_spec.rb +++ b/spec/install/gems/sudo_spec.rb @@ -89,8 +89,10 @@ describe "when using sudo", :sudo => true do gem "very_simple_binary" G - binary = Dir.glob(system_gem_path("extensions/*/*/very_simple_binary-1.0/very_simple_binary_c.bundle")).first - expect(File.exist?(binary)).to be + binary_glob = system_gem_path("extensions/*/*/very_simple_binary-1.0/very_simple_binary_c.bundle") + binary = Dir.glob(binary_glob).first + expect(binary).to be + expect(Pathname.new(binary)).to exist end end |