From e1a4e44f14482814a0540ae0a4b31d858ff56f53 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 13 Jul 2022 17:47:36 +0900 Subject: [PATCH] Extract gemspec files to each gem directories Since extension libraries can not be built in the source directory, rubygems warns gems have extension libraries as the extensions are not built. To order to suppress this warnings, extract such gemspec files under each gem directories instead of the common `specifications` directory. --- tool/gem-unpack.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tool/gem-unpack.rb b/tool/gem-unpack.rb index fe10b0e420..16ee89f62d 100644 --- a/tool/gem-unpack.rb +++ b/tool/gem-unpack.rb @@ -11,10 +11,12 @@ def Gem.unpack(file, dir = nil, spec_dir = nil) target = spec.full_name target = File.join(dir, target) if dir pkg.extract_files target - FileUtils.mkdir_p(spec_dir ||= target) - spec_file = File.join(spec_dir, "#{spec.name}-#{spec.version}.gemspec") - open(spec_file, 'wb') do |f| - f.print spec.to_ruby + if spec.extensions.empty? + spec_dir ||= target + else + spec_dir = target end + FileUtils.mkdir_p(spec_dir) + File.binwrite(File.join(spec_dir, "#{spec.name}-#{spec.version}.gemspec"), spec.to_ruby) puts "Unpacked #{file}" end