aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorなつき <i@ntk.me>2023-03-17 09:48:52 -0700
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2023-03-23 17:18:49 +0900
commit1b408e659a5d754415a760edc483517dce0e2631 (patch)
tree9a7a9bb26e4321b7f3ee556887318dbe18185411
parent22d037f4ccd6d04cd1ee9aa7dd6f0e6019b5df2b (diff)
downloadruby-1b408e659a5d754415a760edc483517dce0e2631.tar.gz
Refactor and fix usage of Gem.ruby
-rw-r--r--lib/rubygems/ext/builder.rb10
-rw-r--r--lib/rubygems/ext/ext_conf_builder.rb5
-rw-r--r--lib/rubygems/ext/rake_builder.rb2
3 files changed, 9 insertions, 8 deletions
diff --git a/lib/rubygems/ext/builder.rb b/lib/rubygems/ext/builder.rb
index adb118133d..3ac6d34d13 100644
--- a/lib/rubygems/ext/builder.rb
+++ b/lib/rubygems/ext/builder.rb
@@ -54,16 +54,20 @@ class Gem::Ext::Builder
end
end
- def self.rubygems_load_path
+ def self.ruby
+ require "shellwords"
+ # Gem.ruby is quoted if it contains whitespace
+ cmd = Gem.ruby.shellsplit
+
# This load_path is only needed when running rubygems test without a proper installation.
# Prepending it in a normal installation will cause problem with order of $LOAD_PATH.
# Therefore only add load_path if it is not present in the default $LOAD_PATH.
load_path = File.expand_path("../..", __dir__)
case load_path
when RbConfig::CONFIG["sitelibdir"], RbConfig::CONFIG["vendorlibdir"], RbConfig::CONFIG["rubylibdir"]
- []
+ cmd
else
- ["-I#{load_path}"]
+ cmd << "-I#{load_path}"
end
end
diff --git a/lib/rubygems/ext/ext_conf_builder.rb b/lib/rubygems/ext/ext_conf_builder.rb
index 22e740fde8..7efd4a06b7 100644
--- a/lib/rubygems/ext/ext_conf_builder.rb
+++ b/lib/rubygems/ext/ext_conf_builder.rb
@@ -22,10 +22,7 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
destdir = ENV["DESTDIR"]
begin
- require "shellwords"
- cmd = Gem.ruby.shellsplit
- cmd.push(*rubygems_load_path)
- cmd << File.basename(extension)
+ cmd = ruby << File.basename(extension)
cmd.push(*args)
run(cmd, results, class_name, extension_dir) do |s, r|
diff --git a/lib/rubygems/ext/rake_builder.rb b/lib/rubygems/ext/rake_builder.rb
index ce5c10e505..8fa14f2128 100644
--- a/lib/rubygems/ext/rake_builder.rb
+++ b/lib/rubygems/ext/rake_builder.rb
@@ -19,7 +19,7 @@ class Gem::Ext::RakeBuilder < Gem::Ext::Builder
rake = rake.shellsplit
else
begin
- rake = [Gem.ruby, *rubygems_load_path, "-rrubygems", Gem.bin_path("rake", "rake")]
+ rake = ruby << "-rrubygems" << Gem.bin_path("rake", "rake")
rescue Gem::Exception
rake = [Gem.default_exec_format % "rake"]
end