aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorStan Lo <stan001212@gmail.com>2023-08-02 19:35:04 +0100
committergit <svn-admin@ruby-lang.org>2023-08-02 18:35:08 +0000
commit32e828bb4a6c65a392b2300f3bdf93008c7b6f25 (patch)
treeda6637240c6c78d9e0e8af5366d57f18e08871dc /lib
parent8ecd300e1e51f9e56bf22a8c4fb64ef475612914 (diff)
downloadruby-32e828bb4a6c65a392b2300f3bdf93008c7b6f25.tar.gz
[ruby/irb] Deprecate multi-irb commands
(https://github.com/ruby/irb/pull/654) * Deprecate multi-irb commands - Print deprecated message when any of the commands are used - Put related commands under `Multi-irb` category with a deprecated label * Update readme https://github.com/ruby/irb/commit/861731ac12
Diffstat (limited to 'lib')
-rw-r--r--lib/irb/cmd/subirb.rb19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/irb/cmd/subirb.rb b/lib/irb/cmd/subirb.rb
index 5f3e02c988..3018ab277b 100644
--- a/lib/irb/cmd/subirb.rb
+++ b/lib/irb/cmd/subirb.rb
@@ -18,6 +18,13 @@ module IRB
private
+ def print_deprecated_warning
+ warn <<~MSG
+ Multi-irb commands are deprecated and will be removed in IRB 2.0.0. Please use workspace commands instead.
+ If you have any use case for multi-irb, please leave a comment at https://github.com/ruby/irb/issues/653
+ MSG
+ end
+
def extend_irb_context
# this extension patches IRB context like IRB.CurrentContext
require_relative "../ext/multi-irb"
@@ -25,38 +32,42 @@ module IRB
end
class IrbCommand < MultiIRBCommand
- category "IRB"
+ category "Multi-irb (DEPRECATED)"
description "Start a child IRB."
def execute(*obj)
+ print_deprecated_warning
IRB.irb(nil, *obj)
end
end
class Jobs < MultiIRBCommand
- category "IRB"
+ category "Multi-irb (DEPRECATED)"
description "List of current sessions."
def execute
+ print_deprecated_warning
IRB.JobManager
end
end
class Foreground < MultiIRBCommand
- category "IRB"
+ category "Multi-irb (DEPRECATED)"
description "Switches to the session of the given number."
def execute(key = nil)
+ print_deprecated_warning
raise CommandArgumentError.new("Please specify the id of target IRB job (listed in the `jobs` command).") unless key
IRB.JobManager.switch(key)
end
end
class Kill < MultiIRBCommand
- category "IRB"
+ category "Multi-irb (DEPRECATED)"
description "Kills the session with the given number."
def execute(*keys)
+ print_deprecated_warning
IRB.JobManager.kill(*keys)
end
end