diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2025-09-08 21:01:29 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2025-09-08 21:06:17 +0900 |
| commit | ac24f70fb0c0cc80d30ec6e96b3369079775d0dc (patch) | |
| tree | bb1b24cde10ded5b38a76429441f14cc88664df0 | |
| parent | 7c5ddb793b71d05d3fba954bbe397ab03c6f76dc (diff) | |
Align the conditions for did_you_mean
Probably due to the testing order, sometimes it looks like that
`Gem::UnknownCommandError` happens to be used without registered in
`DidYouMean`.
| -rw-r--r-- | lib/rubygems/exceptions.rb | 4 | ||||
| -rw-r--r-- | test/rubygems/test_gem_command_manager.rb | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/lib/rubygems/exceptions.rb b/lib/rubygems/exceptions.rb index 362b09dcbb..0f65c76daf 100644 --- a/lib/rubygems/exceptions.rb +++ b/lib/rubygems/exceptions.rb @@ -21,13 +21,11 @@ class Gem::UnknownCommandError < Gem::Exception end def self.attach_correctable - return if defined?(@attached) + return if method_defined?(:corrections) if defined?(DidYouMean) && DidYouMean.respond_to?(:correct_error) DidYouMean.correct_error(Gem::UnknownCommandError, Gem::UnknownCommandSpellChecker) end - - @attached = true end end diff --git a/test/rubygems/test_gem_command_manager.rb b/test/rubygems/test_gem_command_manager.rb index eeda4d94cf..50a2270e3d 100644 --- a/test/rubygems/test_gem_command_manager.rb +++ b/test/rubygems/test_gem_command_manager.rb @@ -79,7 +79,7 @@ class TestGemCommandManager < Gem::TestCase message = "Unknown command pish".dup - if defined?(DidYouMean) + if e.respond_to?(:corrections) message << "\nDid you mean? \"push\"" end |
