Sha256: 9de109566875a978996a3b7f66e601532060453bdac82ec83e21804fb5cf3631

Contents?: true

Size: 919 Bytes

Versions: 8

Compression:

Stored size: 919 Bytes

Contents

#
#   push-ws.rb - 
#   	$Release Version: 0.9.5$
#   	$Revision: 14912 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#   
#

module IRB
  class Context

    def irb_level
      workspace_stack.size
    end

    def workspaces
      if defined? @workspaces
	@workspaces
      else
	@workspaces = []
      end
    end

    def push_workspace(*_main)
      if _main.empty?
	if workspaces.empty?
	  print "No other workspace\n"
	  return nil
	end
	ws = workspaces.pop
	workspaces.push @workspace
	@workspace = ws
	return workspaces
      end

      workspaces.push @workspace
      @workspace = WorkSpace.new(@workspace.binding, _main[0])
      if !(class<<main;ancestors;end).include?(ExtendCommandBundle)
	main.extend ExtendCommandBundle
      end
    end

    def pop_workspace
      if workspaces.empty?
	print "workspace stack empty\n"
	return
      end
      @workspace = workspaces.pop
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
shoesgem-0.1514.0 shoes/ruby/lib/irb/ext/workspaces.rb
shoesgem-0.1480.0 shoes/ruby/lib/irb/ext/workspaces.rb
shoesgem-0.1469.0 shoes/ruby/lib/irb/ext/workspaces.rb
shoesgem-0.1430.0 shoes/ruby/lib/irb/ext/workspaces.rb
shoesgem-0.1429.0 shoes/ruby/lib/irb/ext/workspaces.rb
shoesgem-0.1428.0 shoes/ruby/lib/irb/ext/workspaces.rb
shoesgem-0.1426.0 shoes/ruby/lib/irb/ext/workspaces.rb
shoesgem-0.1424.0 shoes/ruby/lib/irb/ext/workspaces.rb