[ruby/irb] Repurpose the help command to display the help message
(https://github.com/ruby/irb/pull/872) See #787 for more details. https://github.com/ruby/irb/commit/d9192d92d0
This commit is contained in:
parent
d0412599e0
commit
c84581f1d9
@ -1,23 +1,12 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require_relative "show_doc"
|
require_relative "show_cmds"
|
||||||
|
|
||||||
module IRB
|
module IRB
|
||||||
module ExtendCommand
|
module ExtendCommand
|
||||||
class Help < ShowDoc
|
class Help < ShowCmds
|
||||||
category "Context"
|
category "IRB"
|
||||||
description "[DEPRECATED] Enter the mode to look up RI documents."
|
description "List all available commands and their description."
|
||||||
|
|
||||||
DEPRECATION_MESSAGE = <<~MSG
|
|
||||||
[Deprecation] The `help` command will be repurposed to display command help in the future.
|
|
||||||
For RI document lookup, please use the `show_doc` command instead.
|
|
||||||
For command help, please use `show_cmds` for now.
|
|
||||||
MSG
|
|
||||||
|
|
||||||
def execute(*names)
|
|
||||||
warn DEPRECATION_MESSAGE
|
|
||||||
super
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -603,6 +603,16 @@ module TestIRB
|
|||||||
|
|
||||||
|
|
||||||
class ShowCmdsTest < CommandTestCase
|
class ShowCmdsTest < CommandTestCase
|
||||||
|
def test_help
|
||||||
|
out, err = execute_lines(
|
||||||
|
"help\n",
|
||||||
|
)
|
||||||
|
|
||||||
|
assert_empty err
|
||||||
|
assert_match(/List all available commands and their description/, out)
|
||||||
|
assert_match(/Start the debugger of debug\.gem/, out)
|
||||||
|
end
|
||||||
|
|
||||||
def test_show_cmds
|
def test_show_cmds
|
||||||
out, err = execute_lines(
|
out, err = execute_lines(
|
||||||
"show_cmds\n"
|
"show_cmds\n"
|
||||||
@ -774,22 +784,6 @@ module TestIRB
|
|||||||
end
|
end
|
||||||
|
|
||||||
class ShowDocTest < CommandTestCase
|
class ShowDocTest < CommandTestCase
|
||||||
def test_help
|
|
||||||
out, err = execute_lines(
|
|
||||||
"help String#gsub\n",
|
|
||||||
"\n",
|
|
||||||
)
|
|
||||||
|
|
||||||
# the former is what we'd get without document content installed, like on CI
|
|
||||||
# the latter is what we may get locally
|
|
||||||
possible_rdoc_output = [/Nothing known about String#gsub/, /gsub\(pattern\)/]
|
|
||||||
assert_include err, "[Deprecation] The `help` command will be repurposed to display command help in the future.\n"
|
|
||||||
assert(possible_rdoc_output.any? { |output| output.match?(out) }, "Expect the `help` command to match one of the possible outputs. Got:\n#{out}")
|
|
||||||
ensure
|
|
||||||
# this is the only way to reset the redefined method without coupling the test with its implementation
|
|
||||||
EnvUtil.suppress_warning { load "irb/cmd/help.rb" }
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_show_doc
|
def test_show_doc
|
||||||
out, err = execute_lines(
|
out, err = execute_lines(
|
||||||
"show_doc String#gsub\n",
|
"show_doc String#gsub\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user