Extended maintenance of Ruby versions 1.8.7 and 1.9.2 will end on July 31, 2014. Read more

In Files

  • shell.rb
  • shell/builtin-command.rb
  • shell/command-processor.rb
  • shell/error.rb
  • shell/filter.rb
  • shell/process-controller.rb
  • shell/system-command.rb
  • shell/version.rb

Shell

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)

Attributes

cascade[RW]
debug[RW]
debug?[RW]
verbose[RW]
verbose?[RW]
command_processor[R]
cwd[R]

Dir related methods

#cwd/dir/getwd/pwd #chdir/cd #pushdir/pushd #popdir/popd Shell#mkdir Shell#rmdir

debug[RW]
debug?[RW]
dir[R]

Dir related methods

#cwd/dir/getwd/pwd #chdir/cd #pushdir/pushd #popdir/popd Shell#mkdir Shell#rmdir

dir_stack[R]
dirs[R]
getwd[R]

Dir related methods

#cwd/dir/getwd/pwd #chdir/cd #pushdir/pushd #popdir/popd Shell#mkdir Shell#rmdir

process_controller[R]
pwd[R]

Dir related methods

#cwd/dir/getwd/pwd #chdir/cd #pushdir/pushd #popdir/popd Shell#mkdir Shell#rmdir

record_separator[RW]
system_path[R]
umask[RW]
verbose[RW]
verbose?[RW]

Public Class Methods

alias_command(ali, command, *opts, &block) click to toggle source
 
               # File shell.rb, line 223
def Shell.alias_command(ali, command, *opts, &block)
  CommandProcessor.alias_command(ali, command, *opts, &block)
end
            
def_system_command(command, path = command) click to toggle source

command definitions

 
               # File shell.rb, line 215
def Shell.def_system_command(command, path = command)
  CommandProcessor.def_system_command(command, path)
end
            
install_system_commands(pre = "sys_") click to toggle source
 
               # File shell.rb, line 231
def Shell.install_system_commands(pre = "sys_")
  CommandProcessor.install_system_commands(pre)
end
            
new() click to toggle source
 
               # 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
            
notify(*opts, &block) click to toggle source
 
               # 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
            
unalias_command(ali) click to toggle source
 
               # File shell.rb, line 227
def Shell.unalias_command(ali)
  CommandProcessor.unalias_command(ali)
end
            
undef_system_command(command) click to toggle source
 
               # File shell.rb, line 219
def Shell.undef_system_command(command)
  CommandProcessor.undef_system_command(command)
end
            

Public Instance Methods

cd(path) click to toggle source
 
               # File shell.rb, line 48
def cd(path)
  sh = new
  sh.cd path
  sh
end
            
chdir(path = nil) click to toggle source

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
            
Also aliased as: cd
debug=(val) click to toggle source
 
               # File shell.rb, line 43
def debug=(val)
  @debug = val
  @verbose = val if val
end
            
default_record_separator() click to toggle source
 
               # File shell.rb, line 66
def default_record_separator
  if @default_record_separator
    @default_record_separator
  else
    $/
  end
end
            
default_record_separator=(rs) click to toggle source
 
               # File shell.rb, line 74
def default_record_separator=(rs)
  @default_record_separator = rs
end
            
default_system_path() click to toggle source
 
               # File shell.rb, line 54
def default_system_path
  if @default_system_path
    @default_system_path
  else
    ENV["PATH"].split(":")
  end
end
            
default_system_path=(path) click to toggle source
 
               # File shell.rb, line 62
def default_system_path=(path)
  @default_system_path = path
end
            
expand_path(path) click to toggle source
 
               # File shell.rb, line 118
def expand_path(path)
  File.expand_path(path, @cwd)
end
            
inspect() click to toggle source
 
               # File shell.rb, line 236
def inspect
  if debug.kind_of?(Integer) && debug > 2
    super
  else
    to_s
  end
end
            
jobs() click to toggle source

process management

 
               # File shell.rb, line 204
def jobs
  @process_controller.jobs
end
            
kill(sig, command) click to toggle source
 
               # File shell.rb, line 208
def kill(sig, command)
  @process_controller.kill_job(sig, command)
end
            
popd() click to toggle source
Alias for: popdir
popdir() click to toggle source
 
               # 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
            
Also aliased as: popd
pushd(path = nil) click to toggle source
Alias for: pushdir
pushdir(path = nil) click to toggle source
 
               # 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
            
Also aliased as: pushd
system_path=(path) click to toggle source
 
               # File shell.rb, line 96
def system_path=(path)
  @system_path = path
  rehash
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 visit Documenting-ruby.org.

blog comments powered by Disqus