aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--spec/bundler/quality_spec.rb14
-rw-r--r--spec/bundler/support/helpers.rb12
2 files changed, 19 insertions, 7 deletions
diff --git a/spec/bundler/quality_spec.rb b/spec/bundler/quality_spec.rb
index ce7058afc0..1b40ecce12 100644
--- a/spec/bundler/quality_spec.rb
+++ b/spec/bundler/quality_spec.rb
@@ -225,7 +225,16 @@ RSpec.describe "The library itself" do
it "can still be built" do
Dir.chdir(root) do
begin
- gem_command! :build, gemspec
+ if ruby_core?
+ spec = Gem::Specification.load(gemspec.to_s)
+ spec.bindir = "libexec"
+ File.open(root.join("bundler.gemspec").to_s, "w"){|f| f.write spec.to_ruby }
+ gem_command! :build, root.join("bundler.gemspec").to_s
+ FileUtils.rm(root.join("bundler.gemspec").to_s)
+ else
+ gem_command! :build, gemspec
+ end
+
if Bundler.rubygems.provides?(">= 2.4")
# there's no way aroudn this warning
last_command.stderr.sub!(/^YAML safe loading.*/, "")
@@ -236,8 +245,7 @@ RSpec.describe "The library itself" do
end
ensure
# clean up the .gem generated
- path_prefix = ruby_core? ? "lib/" : "./"
- FileUtils.rm("#{path_prefix}bundler-#{Bundler::VERSION}.gem")
+ FileUtils.rm("bundler-#{Bundler::VERSION}.gem")
end
end
end
diff --git a/spec/bundler/support/helpers.rb b/spec/bundler/support/helpers.rb
index 43bf6af229..fbe63a2641 100644
--- a/spec/bundler/support/helpers.rb
+++ b/spec/bundler/support/helpers.rb
@@ -313,12 +313,16 @@ module Spec
gem_repo = options.fetch(:gem_repo) { gem_repo1 }
gems.each do |g|
path = if g == :bundler
- Dir.chdir(root) { gem_command! :build, gemspec.to_s }
- bundler_path = if ruby_core?
- root + "lib/bundler-#{Bundler::VERSION}.gem"
+ if ruby_core?
+ spec = Gem::Specification.load(gemspec.to_s)
+ spec.bindir = "libexec"
+ File.open(root.join("bundler.gemspec").to_s, "w"){|f| f.write spec.to_ruby }
+ Dir.chdir(root) { gem_command! :build, root.join("bundler.gemspec").to_s }
+ FileUtils.rm(root.join("bundler.gemspec"))
else
- root + "bundler-#{Bundler::VERSION}.gem"
+ Dir.chdir(root) { gem_command! :build, gemspec.to_s }
end
+ bundler_path = root + "bundler-#{Bundler::VERSION}.gem"
elsif g.to_s =~ %r{\A/.*\.gem\z}
g
else