mirror of
https://github.com/ruby/ruby.git
synced 2025-08-24 13:34:17 +02:00

(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
40 lines
826 B
Ruby
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
|