D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
proc
/
self
/
root
/
proc
/
self
/
root
/
opt
/
alt
/
ruby34
/
share
/
ruby
/
irb
/
command
/
Filename :
pushws.rb
back
Copy
# frozen_string_literal: true # # change-ws.rb - # by Keiju ISHITSUKA(keiju@ruby-lang.org) # require_relative "../ext/workspaces" module IRB # :stopdoc: module Command class Workspaces < Base category "Workspace" description "Show workspaces." def execute(_arg) inspection_resuls = irb_context.instance_variable_get(:@workspace_stack).map do |ws| truncated_inspect(ws.main) end puts "[" + inspection_resuls.join(", ") + "]" end private def truncated_inspect(obj) obj_inspection = obj.inspect if obj_inspection.size > 20 obj_inspection = obj_inspection[0, 19] + "...>" end obj_inspection end end class PushWorkspace < Workspaces category "Workspace" description "Push an object to the workspace stack." def execute(arg) if arg.empty? irb_context.push_workspace else obj = eval(arg, irb_context.workspace.binding) irb_context.push_workspace(obj) end super end end class PopWorkspace < Workspaces category "Workspace" description "Pop a workspace from the workspace stack." def execute(_arg) irb_context.pop_workspace super end end end # :startdoc: end