Index of Section 1 Manual Pages

Interix / SUAruby.XInterix / SUA

RUBY(1)                        UNIX                       RUBY(1)



NAME
       ruby - Interpreted object-oriented scripting language

SYNOPSIS
       ruby  [--copyright] [--version] [-Sacdlnpswvy] [-0[octal]]
       [-C  directory]  [-F  pattern]  [-I  directory]   [-K   c]
       [-T[level]]  [-e  command]  [-i[extension]]  [-r  library]
       [-x[directory]] [--] [program_file] [argument ...]

DESCRIPTION
       Ruby is an interpreted scripting language  for  quick  and
       easy object-oriented programming.  It has many features to
       process text files and to do system management  tasks  (as
       in Perl).  It is simple, straight-forward, and extensible.

       If you want a language for easy  object-oriented  program-
       ming,  or you don't like the Perl ugliness, or you do like
       the concept of LISP, but don't like too much  parentheses,
       Ruby may be the language of your choice.

FEATURES
       Ruby's features are as follows:

       Interpretive
              Ruby  is an interpreted language, so you don't have
              to recompile programs written in  Ruby  to  execute
              them.


       Variables have no type (dynamic typing)
              Variables  in  Ruby  can  contain data of any type.
              You don't have  to  worry  about  variable  typing.
              Consequently, it has a weaker compile time check.


       No declaration needed
              You can use variables in your Ruby programs without
              any  declarations.   Variable  names  denote  their
              scope, local, global, instance, etc.


       Simple syntax
              Ruby  has  a simple syntax influenced slightly from
              Eiffel.


       No user-level memory management
              Ruby has automatic memory management.   Objects  no
              longer  referenced  from anywhere are automatically
              collected by the garbage collector built  into  the
              interpreter.


       Everything is an object
              Ruby  is  the  purely object-oriented language, and
              was so since its creation.  Even such basic data as
              integers are seen as objects.


       Class, inheritance, and methods
              Of course, as an object-oriented language, Ruby has
              such basic features like classes, inheritance,  and
              methods.


       Singleton methods
              Ruby  has the ability to define methods for certain
              objects.  For example, you can define a  press-but-
              ton action for certain widget by defining a single-
              ton method for the button.  Or,  you  can  make  up
              your  own  prototype based object system using sin-
              gleton methods, if you want to.


       Mix-in by modules
              Ruby  intentionally  does  not  have  the  multiple
              inheritance   as  it  is  a  source  of  confusion.
              Instead, Ruby has the ability to share  implementa-
              tions  across  the inheritance tree.  This is often
              called `Mix-in'.


       Iterators
              Ruby has iterators for loop abstraction.


       Closures
              In Ruby, you can objectify the procedure.


       Text processing and regular expression
              Ruby has a bunch of text processing  features  like
              in Perl.


       Bignums
              With  built-in  bignums, you can for example calcu-
              late factorial(400).


       Exception handling
              As in Java(tm).


       Direct access to the OS
              Ruby can use most UNIX system calls, often used  in
              system programming.


       Dynamic loading
              On  most  UNIX  systems,  you can load object files
              into the Ruby interpreter on-the-fly.


OPTIONS
       Ruby interpreter accepts  following  command-line  options
       (switches).  They are quite similar to those of perl(1).


       --copyright
              Prints the copyright notice.


       --version
              Prints the version of Ruby interpreter.


       -0[octal]
              (The  digit  ``zero''.)  Specifies the input record
              separator ("$/") as an octal number. If no digit is
              given,  the  null character is taken as the separa-
              tor.  Other switches may follow  the  digits.   -00
              turns  Ruby  into paragraph mode.  -0777 makes Ruby
              read whole file at once as a  single  string  since
              there is no legal character with that value.


       -C directory
              Causes Ruby to switch to the directory.


       -F pattern
              Specifies input field separator ("$;").


       -I directory
              Used  to  tell  Ruby  where  to  load  the  library
              scripts.  Directory path will be added to the load-
              path variable ("$:").


       -K kcode
              Specifies KANJI (Japanese) encoding.


       -S     Makes  Ruby  use  the  PATH environment variable to
              search for script, unless if its name begins with a
              slash.   This  is  used  to emulate #!  on machines
              that don't support it, in the following manner:

              #! /usr/local/bin/ruby
              # This line makes the next one a comment in Ruby \
                exec /usr/local/bin/ruby -S $0 $*


       -T[level]
              Turns  on  taint  checks  at  the  specified  level
              (default 1).


       -a     Turns  on  auto-split mode when used with -n or -p.
              In auto-split mode, Ruby executes
                $F = $_.split
              at beginning of each loop.


       -c     Causes Ruby to check the syntax of the  script  and
              exit  without  executing.  If  there  are no syntax
              errors, Ruby will print ``Syntax OK'' to the  stan-
              dard output.


       -d

       --debug
              Turns on debug mode.  "$DEBUG" will be set to true.


       -e command
              Specifies script from  command-line  while  telling
              Ruby  not  to  search  the  rest of arguments for a
              script file name.


       -h

       --help Prints a summary of the options.


       -i extension
              Specifies in-place-edit mode.   The  extension,  if
              specified,  is  added  to  old  file name to make a
              backup copy.  For example:

              % echo matz > /tmp/junk
              % cat /tmp/junk
              matz
              % ruby -p -i.bak -e '$_.upcase!' /tmp/junk
              % cat /tmp/junk
              MATZ
              % cat /tmp/junk.bak
              matz


       -l     (The lowercase letter ``ell''.)  Enables  automatic
              line-ending  processing, which means to firstly set
              "$\" to the value of "$/", and secondly chops every
              line read using chop!.


       -n     Causes  Ruby  to  assume  the following loop around
              your script, which makes it iterate over file  name
              arguments somewhat like sed -n or awk.

              while gets
                ...
              end


       -p     Acts  mostly same as -n switch, but print the value
              of variable "$_" at the each end of the loop.   For
              example:

              % echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"'
              MATZ


       -r library
              Causes  Ruby to load the library using require.  It
              is useful when using -n or -p.


       -s     Enables some  switch  parsing  for  switches  after
              script  name but before any file name arguments (or
              before a --).  Any switches found there are removed
              from ARGV and set the corresponding variable in the
              script.  For example:

              #! /usr/local/bin/ruby -s
              # prints "true" if invoked with `-xyz' switch.
              print "true\n" if $xyz

              On some systems "$0" does not  always  contain  the
              full  pathname,  so  you need the -S switch to tell
              Ruby to search for the  script  if  necessary.   To
              handle embedded spaces or such.  A better construct
              than "$*" would be ${1+"$@"}, but it does not  work
              if the script is being interpreted by csh(1).


       -v

       --verbose
              Enables  verbose mode.  Ruby will print its version
              at the beginning, and set the  variable  "$VERBOSE"
              to true.  Some methods print extra messages if this
              variable is true.  If this switch is given, and  no
              other switches are present, Ruby quits after print-
              ing its version.


       -w     Enables verbose mode without printing version  mes-
              sage  at  the  beginning.   It  sets the "$VERBOSE"
              variable to true.


       -x[directory]
              Tells Ruby that the script is embedded  in  a  mes-
              sage.   Leading garbage will be discarded until the
              first that starts with  ``#!''   and  contains  the
              string,  ``ruby''.  Any meaningful switches on that
              line will applied.  The end of script must be spec-
              ified  with  either  EOF,  "^D" ("control-D"), "^Z"
              ("control-Z"), or reserved word  __END__.   If  the
              directory  name  is  specified, Ruby will switch to
              that directory before executing script.


       -y

       --yydebug
              Turns on compiler debug mode.  Ruby  will  print  a
              bunch  of  internal state messages during compiling
              scripts.  You don't have to  specify  this  switch,
              unless you are going to debug the Ruby interpreter.


ENVIRONMENT
       RUBYLIB
              A colon-separated  list  of  directories  that  are
              appended to Ruby's library load path ("$:").

              e.g.:
                RUBYLIB="$HOME/lib/ruby:$HOME/lib/rubyext"


       RUBYOPT
              Additional Ruby options.

              e.g.
                RUBYOPT="-w -Ke"


       RUBYPATH
              A  colon-separated  list  of  directories that Ruby
              searches for Ruby programs  when  the  -S  flag  is
              specified.   This  variable precedes the PATH envi-
              ronment variable.


       RUBYSHELL
              The path to the system shell command.   This  envi-
              ronment  variable  is  enabled  for  only  mswin32,
              mingw32, and OS/2 platforms.  If this  variable  is
              not defined, Ruby refers to COMSPEC.


       PATH   Ruby  refers  to  the  PATH environment variable on
              calling Kernel#system.


       RUBYLIB_PREFIX
              This variable is obsolete.


AUTHORS
       Ruby is designed and  implemented  by  Yukihiro  Matsumoto
       .



December 31, 2002Ruby Programmers Reference Guide         RUBY(1)

Interix / SUAHosted at SUA Community for Interix, SUA and SFUInterix / SUA