?
Current Path : /usr/share/ruby/irb/ext/ |
Linux gator3171.hostgator.com 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 |
Current File : //usr/share/ruby/irb/ext/change-ws.rb |
# # irb/ext/cb.rb - # $Release Version: 0.9.6$ # $Revision: 38515 $ # by Keiju ISHITSUKA(keiju@ruby-lang.org) # # -- # # # module IRB # :nodoc: class Context # Inherited from +TOPLEVEL_BINDING+. def home_workspace if defined? @home_workspace @home_workspace else @home_workspace = @workspace end end # Changes the current workspace to given object or binding. # # If the optional argument is omitted, the workspace will be # #home_workspace which is inherited from +TOPLEVEL_BINDING+ or the main # object, <code>IRB.conf[:MAIN_CONTEXT]</code> when irb was initialized. # # See IRB::WorkSpace.new for more information. def change_workspace(*_main) if _main.empty? @workspace = home_workspace return main end @workspace = WorkSpace.new(_main[0]) if !(class<<main;ancestors;end).include?(ExtendCommandBundle) main.extend ExtendCommandBundle end end # def change_binding(*_main) # back = @workspace # @workspace = WorkSpace.new(*_main) # unless _main.empty? # begin # main.extend ExtendCommandBundle # rescue # print "can't change binding to: ", main.inspect, "\n" # @workspace = back # return nil # end # end # @irb_level += 1 # begin # catch(:SU_EXIT) do # @irb.eval_input # end # ensure # @irb_level -= 1 # @workspace = back # end # end # alias change_workspace change_binding end end