ruby/lib/irb/command/chws.rb
Stan Lo 148518baa0 [ruby/irb] Suppress command return values
(https://github.com/ruby/irb/pull/934)

Since commands can't be chained with methods, their return values are
not intended to be used. But if IRB keeps storing command return values
as the last value, and print them, users may rely on such implicit
behaviour.

So to avoid such confusion, this commit suppresses command's
return values. It also updates some commands that currently rely on
this implicit behaviour.

fa96bea76f
2024-04-26 17:52:12 +00:00

40 lines
826 B
Ruby

# frozen_string_literal: true
#
# change-ws.rb -
# by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
require_relative "../ext/change-ws"
module IRB
# :stopdoc:
module Command
class CurrentWorkingWorkspace < Base
category "Workspace"
description "Show the current workspace."
def execute(_arg)
puts "Current workspace: #{irb_context.main}"
end
end
class ChangeWorkspace < Base
category "Workspace"
description "Change the current workspace to an object."
def execute(arg)
if arg.empty?
irb_context.change_workspace
else
obj = eval(arg, irb_context.workspace.binding)
irb_context.change_workspace(obj)
end
puts "Current workspace: #{irb_context.main}"
end
end
end
# :startdoc:
end