diff options
author | keiju <keiju@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-07-09 11:17:17 +0000 |
---|---|---|
committer | keiju <keiju@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-07-09 11:17:17 +0000 |
commit | af064b04b1622897995fe1177aabfb60db90e6f7 (patch) | |
tree | 326cb343c08c55d2d93fa5223c01f940d3591f8b /lib/irb/cmd | |
parent | 93602810e93b5da1c7161fb4b5c1a4025434a9ce (diff) |
* irb 0.9
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/irb/cmd')
-rw-r--r-- | lib/irb/cmd/chws.rb | 33 | ||||
-rw-r--r-- | lib/irb/cmd/fork.rb | 25 | ||||
-rw-r--r-- | lib/irb/cmd/load.rb | 67 | ||||
-rw-r--r-- | lib/irb/cmd/nop.rb | 39 | ||||
-rw-r--r-- | lib/irb/cmd/pushws.rb | 39 | ||||
-rw-r--r-- | lib/irb/cmd/subirb.rb | 43 |
6 files changed, 246 insertions, 0 deletions
diff --git a/lib/irb/cmd/chws.rb b/lib/irb/cmd/chws.rb new file mode 100644 index 0000000000..84f06014ba --- /dev/null +++ b/lib/irb/cmd/chws.rb @@ -0,0 +1,33 @@ +# +# change-ws.rb - +# $Release Version: 0.9$ +# $Revision$ +# $Date$ +# by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd) +# +# -- +# +# +# + +require "irb/cmd/nop.rb" +require "irb/ext/change-ws.rb" + +module IRB + module ExtendCommand + + class CurrentWorkingWorkspace<Nop + def execute(*obj) + irb_context.main + end + end + + class ChangeWorkspace<Nop + def execute(*obj) + irb_context.change_workspace(*obj) + irb_context.main + end + end + end +end + diff --git a/lib/irb/cmd/fork.rb b/lib/irb/cmd/fork.rb new file mode 100644 index 0000000000..1cc4458b13 --- /dev/null +++ b/lib/irb/cmd/fork.rb @@ -0,0 +1,25 @@ + +module IRB + module ExtendCommand + class Fork<Nop + def execute(&block) + pid = send ExtendCommand.irb_original_method_name("fork") + unless pid + class<<self + alias_method :exit, ExtendCommand.irb_original_method_name('exit') + end + if iterator? + begin + yield + ensure + exit + end + end + end + pid + end + end + end +end + + diff --git a/lib/irb/cmd/load.rb b/lib/irb/cmd/load.rb new file mode 100644 index 0000000000..99d20f500c --- /dev/null +++ b/lib/irb/cmd/load.rb @@ -0,0 +1,67 @@ +# +# load.rb - +# $Release Version: 0.9$ +# $Revision$ +# $Date$ +# by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd) +# +# -- +# +# +# + +require "irb/cmd/nop.rb" +require "irb/ext/loader" + +module IRB + module ExtendCommand + class Load<Nop + include IrbLoader + + def execute(file_name, priv = nil) +# return ruby_load(file_name) unless IRB.conf[:USE_LOADER] + return irb_load(file_name, priv) + end + end + + class Require<Nop + include IrbLoader + + def execute(file_name) +# return ruby_require(file_name) unless IRB.conf[:USE_LOADER] + + rex = Regexp.new("#{Regexp.quote(file_name)}(\.o|\.rb)?") + return false if $".find{|f| f =~ rex} + + case file_name + when /\.rb$/ + begin + if irb_load(file_name) + $".push file_name + return true + end + rescue LoadError + end + when /\.(so|o|sl)$/ + return ruby_require(file_name) + end + + begin + irb_load(f = file_name + ".rb") + $".push f + return true + rescue LoadError + return ruby_require(file_name) + end + end + end + + class Source<Nop + include IrbLoader + def execute(file_name) + source_file(file_name) + end + end + end + +end diff --git a/lib/irb/cmd/nop.rb b/lib/irb/cmd/nop.rb new file mode 100644 index 0000000000..73c52b1aa3 --- /dev/null +++ b/lib/irb/cmd/nop.rb @@ -0,0 +1,39 @@ +# +# nop.rb - +# $Release Version: 0.9$ +# $Revision$ +# $Date$ +# by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd) +# +# -- +# +# +# +module IRB + module ExtendCommand + class Nop + + @RCS_ID='-$Id$-' + + def self.execute(conf, *opts) + command = new(conf) + command.execute(*opts) + end + + def initialize(conf) + @irb_context = conf + end + + attr_reader :irb_context + + def irb + @irb_context.irb + end + + def execute(*opts) + #nop + end + end + end +end + diff --git a/lib/irb/cmd/pushws.rb b/lib/irb/cmd/pushws.rb new file mode 100644 index 0000000000..0d8130d5c6 --- /dev/null +++ b/lib/irb/cmd/pushws.rb @@ -0,0 +1,39 @@ +# +# change-ws.rb - +# $Release Version: 0.9$ +# $Revision$ +# $Date$ +# by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd) +# +# -- +# +# +# + +require "irb/cmd/nop.rb" +require "irb/ext/workspaces.rb" + +module IRB + module ExtendCommand + class Workspaces<Nop + def execute(*obj) + irb_context.workspaces.collect{|ws| ws.main} + end + end + + class PushWorkspace<Workspaces + def execute(*obj) + irb_context.push_workspace(*obj) + super + end + end + + class PopWorkspace<Workspaces + def execute(*obj) + irb_context.pop_workspace(*obj) + super + end + end + end +end + diff --git a/lib/irb/cmd/subirb.rb b/lib/irb/cmd/subirb.rb new file mode 100644 index 0000000000..7899f1bb43 --- /dev/null +++ b/lib/irb/cmd/subirb.rb @@ -0,0 +1,43 @@ +#!/usr/local/bin/ruby +# +# multi.rb - +# $Release Version: 0.9$ +# $Revision$ +# $Date$ +# by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd) +# +# -- +# +# +# + +require "irb/cmd/nop.rb" +require "irb/ext/multi-irb" + +module IRB + module ExtendCommand + class IrbCommand<Nop + def execute(*obj) + IRB.irb(nil, *obj) + end + end + + class Jobs<Nop + def execute + IRB.JobManager + end + end + + class Foreground<Nop + def execute(key) + IRB.JobManager.switch(key) + end + end + + class Kill<Nop + def execute(*keys) + IRB.JobManager.kill(*keys) + end + end + end +end |