diff options
author | なつき <i@ntk.me> | 2023-03-17 09:48:52 -0700 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-03-23 17:18:49 +0900 |
commit | 1b408e659a5d754415a760edc483517dce0e2631 (patch) | |
tree | 9a7a9bb26e4321b7f3ee556887318dbe18185411 | |
parent | 22d037f4ccd6d04cd1ee9aa7dd6f0e6019b5df2b (diff) | |
download | ruby-1b408e659a5d754415a760edc483517dce0e2631.tar.gz |
Refactor and fix usage of Gem.ruby
-rw-r--r-- | lib/rubygems/ext/builder.rb | 10 | ||||
-rw-r--r-- | lib/rubygems/ext/ext_conf_builder.rb | 5 | ||||
-rw-r--r-- | lib/rubygems/ext/rake_builder.rb | 2 |
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 |