summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2017-08-02 15:32:26 -0500
committerSamuel Giddins <segiddins@segiddins.me>2017-08-19 00:24:34 -0400
commite2a8b1735b53c1f7af3cbda84bc031d4c9b84c57 (patch)
treea4514793e953f29faf410e96db5b5f86cf4d31c6
parentec4e3e74760ca14b4c50fc5b6e09820527015ba4 (diff)
downloadbundler-e2a8b1735b53c1f7af3cbda84bc031d4c9b84c57.tar.gz
Just dont cache extensions on super old RG versions
-rw-r--r--lib/bundler/rubygems_gem_installer.rb4
-rw-r--r--lib/bundler/rubygems_integration.rb5
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/bundler/rubygems_gem_installer.rb b/lib/bundler/rubygems_gem_installer.rb
index dc77168ed6..e7e1a7e940 100644
--- a/lib/bundler/rubygems_gem_installer.rb
+++ b/lib/bundler/rubygems_gem_installer.rb
@@ -20,9 +20,9 @@ module Bundler
def build_extensions
extension_cache_path = options[:bundler_extension_cache_path]
- return super unless extension_cache_path
+ return super unless extension_cache_path && extension_dir = Bundler.rubygems.spec_extension_dir(spec)
- extension_dir = Pathname.new(spec.extension_dir)
+ extension_dir = Pathname.new(extension_dir)
build_complete = SharedHelpers.filesystem_access(extension_cache_path.join("gem.build_complete"), :read, &:file?)
if build_complete && !options[:force]
SharedHelpers.filesystem_access(extension_dir.parent, &:mkpath)
diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb
index dc1c35b990..202903d981 100644
--- a/lib/bundler/rubygems_integration.rb
+++ b/lib/bundler/rubygems_integration.rb
@@ -93,6 +93,11 @@ module Bundler
end.flatten(1)
end
+ def spec_extension_dir(spec)
+ return unless spec.respond_to?(:extension_dir)
+ spec.extension_dir
+ end
+
def stub_set_spec(stub, spec)
stub.instance_variable_set(:@spec, spec)
end