mirror of
https://github.com/ruby/ruby.git
synced 2025-08-25 14:05:02 +02:00

(https://github.com/ruby/irb/pull/835)
* Remove unnecessary code from the exit command's implementation
1. The parameters of `IRB.irb_exit` were never used. But there are some
libraries seem to call it with arguments + it's declared on the top-level
IRB constant. So I changed the params to anonymous splat instead of removing them.
2. `Context#exit` was completely unnecessary as `IRB.irb_exit` doesn't use
the `@irb` instance it passes. And since it's (or should be treated as)
a private method, I simply removed it.
3. The `exit` command doesn't use the status argument it receives at all.
But to avoid raising errors on usages like `exit 1`, I changed the argument to
anonymous splat instead removing it.
* Make exit an actual command
* Update readme
452b543a65
22 lines
335 B
Ruby
22 lines
335 B
Ruby
# frozen_string_literal: true
|
|
|
|
require_relative "nop"
|
|
|
|
module IRB
|
|
# :stopdoc:
|
|
|
|
module ExtendCommand
|
|
class Exit < Nop
|
|
category "IRB"
|
|
description "Exit the current irb session."
|
|
|
|
def execute(*)
|
|
IRB.irb_exit
|
|
rescue UncaughtThrowError
|
|
Kernel.exit
|
|
end
|
|
end
|
|
end
|
|
|
|
# :startdoc:
|
|
end
|