Object
shell/filter.rb -
$Release Version: 0.6.0 $
$Revision: 11708 $
$Date: 2007-02-12 16:01:19 -0700 (Mon, 12 Feb 2007) $
by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd)
–
version.rb - shell version definition file
$Release Version: 0.6.0$
$Revision: 11708 $
$Date: 2007-02-12 16:01:19 -0700 (Mon, 12 Feb 2007) $
by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd)
–
# File shell.rb, line 223
def Shell.alias_command(ali, command, *opts, &block)
CommandProcessor.alias_command(ali, command, *opts, &block)
end
# File shell.rb, line 43
def debug=(val)
@debug = val
@verbose = val if val
end
command definitions
# File shell.rb, line 215
def Shell.def_system_command(command, path = command)
CommandProcessor.def_system_command(command, path)
end
# File shell.rb, line 66
def default_record_separator
if @default_record_separator
@default_record_separator
else
$/
end
end
# File shell.rb, line 74
def default_record_separator=(rs)
@default_record_separator = rs
end
# File shell.rb, line 54
def default_system_path
if @default_system_path
@default_system_path
else
ENV["PATH"].split(":")
end
end
# File shell.rb, line 62
def default_system_path=(path)
@default_system_path = path
end
# File shell.rb, line 231
def Shell.install_system_commands(pre = "sys_")
CommandProcessor.install_system_commands(pre)
end
# File shell.rb, line 79
def initialize
@cwd = Dir.pwd
@dir_stack = []
@umask = nil
@system_path = Shell.default_system_path
@record_separator = Shell.default_record_separator
@command_processor = CommandProcessor.new(self)
@process_controller = ProcessController.new(self)
@verbose = Shell.verbose
@debug = Shell.debug
end
# File shell.rb, line 244
def self.notify(*opts, &block)
Thread.exclusive do
if opts[-1].kind_of?(String)
yorn = verbose?
else
yorn = opts.pop
end
return unless yorn
_head = true
print opts.collect{|mes|
mes = mes.dup
yield mes if iterator?
if _head
_head = false
"shell: " + mes
else
" " + mes
end
}.join("\n")+"\n"
end
end
If called as iterator, it restores the current directory when the block ends.
# File shell.rb, line 144
def chdir(path = nil)
if iterator?
cwd_old = @cwd
begin
chdir(path)
yield
ensure
chdir(cwd_old)
end
else
path = "~" unless path
@cwd = expand_path(path)
notify "current dir: #{@cwd}"
rehash
self
end
end
# File shell.rb, line 107
def debug=(val)
@debug = val
@verbose = val if val
end
# File shell.rb, line 118
def expand_path(path)
File.expand_path(path, @cwd)
end
# File shell.rb, line 236
def inspect
if debug.kind_of?(Integer) && debug > 2
super
else
to_s
end
end
process management
# File shell.rb, line 204
def jobs
@process_controller.jobs
end
# File shell.rb, line 208
def kill(sig, command)
@process_controller.kill_job(sig, command)
end
# File shell.rb, line 189
def popdir
if pop = @dir_stack.pop
chdir pop
notify "dir stack: [#{@dir_stack.join ', '}]"
self
else
Shell.Fail DirStackEmpty
end
end
# File shell.rb, line 163
def pushdir(path = nil)
if iterator?
pushdir(path)
begin
yield
ensure
popdir
end
elsif path
@dir_stack.push @cwd
chdir path
notify "dir stack: [#{@dir_stack.join ', '}]"
self
else
if pop = @dir_stack.pop
@dir_stack.push @cwd
chdir pop
notify "dir stack: [#{@dir_stack.join ', '}]"
self
else
Shell.Fail DirStackEmpty
end
end
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.