From be4567e194c7eb8571d0b43336e91c27b5eeb451 Mon Sep 17 00:00:00 2001 From: mterada1228 <49284339+mterada1228@users.noreply.github.com> Date: Tue, 7 Jan 2025 09:53:45 +0900 Subject: [PATCH] [ruby/rdoc] Add missing `RDoc::RubygemsHook` API for `gem server` (https://github.com/ruby/rdoc/pull/1270) This PR fixes https://github.com/ruby/rdoc/pull/1269. ## Expected Behavior `gem server` command is successful. ```console $ gem server Server started at http://[::]:8808 Server started at http://0.0.0.0:8808 ``` http://127.0.0.1:8808/ works. ## Actual Behavior `gem server` command doesn't work because `Gem::RDoc.load_rdoc` raises `NoMethodError`. ```console $ gem server ERROR: While executing gem ... (NoMethodError) undefined method 'load_rdoc' for class RDoc::RubygemsHook Gem::RDoc.load_rdoc ^^^^^^^^^^ /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/rubygems-server-0.3.0/lib/rubygems/server.rb:437:in 'Gem::Server#initialize' /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/rubygems-server-0.3.0/lib/rubygems/server.rb:426:in 'Class#new' /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/rubygems-server-0.3.0/lib/rubygems/server.rb:426:in 'Gem::Server.run' /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/rubygems-server-0.3.0/lib/rubygems/commands/server_command.rb:83:in 'Gem::Commands::ServerCommand#execute' /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/command.rb:326:in 'Gem::Command#invoke_with_build_args' /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/command_manager.rb:253:in 'Gem::CommandManager#invoke_command' /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/command_manager.rb:194:in 'Gem::CommandManager#process_args' /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/command_manager.rb:152:in 'Gem::CommandManager#run' /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/gem_runner.rb:57:in 'Gem::GemRunner#run' /Users/mterada/.rbenv/versions/3.4.1/bin/gem:12:in '
' ``` ## Versions ```console $ rdoc -v 6.10.0 ``` --------- https://github.com/ruby/rdoc/commit/b6a82244a2 Co-authored-by: Sutou Kouhei --- lib/rdoc/rubygems_hook.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/rdoc/rubygems_hook.rb b/lib/rdoc/rubygems_hook.rb index 87ce470af1..bc6065438b 100644 --- a/lib/rdoc/rubygems_hook.rb +++ b/lib/rdoc/rubygems_hook.rb @@ -310,5 +310,21 @@ module RDoc # Generate document for compatibility if this is a default gem. RubyGemsHook.generate(installer, specs) end + + def self.load_rdoc + RubyGemsHook.load_rdoc + end + + def self.rdoc_version + RubyGemsHook.rdoc_version + end + + def rdoc_installed? + RubyGemsHook.new(@spec).rdoc_installed? + end + + def ri_installed? + RubyGemsHook.new(@spec).ri_installed? + end end end