[ruby/irb] Avoid raising errors while running help for custom
commands (https://github.com/ruby/irb/pull/944) * Avoid raising errors while running help for custom commands Raising an error from the help command is not a pleasure for the end user, even if the command does not define any attributes * Update test/irb/command/test_custom_command.rb --------- https://github.com/ruby/irb/commit/c8bba9f8dc Co-authored-by: Stan Lo <stan001212@gmail.com>
This commit is contained in:
parent
70db150fbc
commit
a510175e8f
@ -12,7 +12,7 @@ module IRB
|
|||||||
help_message
|
help_message
|
||||||
else
|
else
|
||||||
if command_class = Command.load_command(command_name)
|
if command_class = Command.load_command(command_name)
|
||||||
command_class.help_message || command_class.description
|
command_class.help_message || command_class.description || ""
|
||||||
else
|
else
|
||||||
"Can't find command `#{command_name}`. Please check the command name and try again.\n\n"
|
"Can't find command `#{command_name}`. Please check the command name and try again.\n\n"
|
||||||
end
|
end
|
||||||
|
@ -123,5 +123,31 @@ module TestIRB
|
|||||||
assert_include(output, "2 FooBar executed")
|
assert_include(output, "2 FooBar executed")
|
||||||
assert_include(output, "foobar_description")
|
assert_include(output, "foobar_description")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_no_meta_command_also_works
|
||||||
|
write_ruby <<~RUBY
|
||||||
|
require "irb/command"
|
||||||
|
|
||||||
|
class NoMetaCommand < IRB::Command::Base
|
||||||
|
def execute(*)
|
||||||
|
puts "This command does not override meta attributes"
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
IRB::Command.register(:no_meta, NoMetaCommand)
|
||||||
|
|
||||||
|
binding.irb
|
||||||
|
RUBY
|
||||||
|
|
||||||
|
output = run_ruby_file do
|
||||||
|
type "no_meta\n"
|
||||||
|
type "help no_meta\n"
|
||||||
|
type "exit"
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_include(output, "This command does not override meta attributes")
|
||||||
|
assert_not_include(output, "Maybe IRB bug")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user