diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 19:08:43 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 19:08:43 +0000 |
commit | d464704f111d211c1f1ff9ef23ef1d755054be00 (patch) | |
tree | b58b17b645dc463322e5fca57fe282360db659c9 /ruby_1_8_5/ruby.1 | |
parent | e4f06b3f2dec4b5d6334c5e9907e1cecbf649fc4 (diff) |
add tag v1_8_5_54
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_54@12952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_5/ruby.1')
-rw-r--r-- | ruby_1_8_5/ruby.1 | 351 |
1 files changed, 351 insertions, 0 deletions
diff --git a/ruby_1_8_5/ruby.1 b/ruby_1_8_5/ruby.1 new file mode 100644 index 0000000000..f240f2f22b --- /dev/null +++ b/ruby_1_8_5/ruby.1 @@ -0,0 +1,351 @@ +.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. +.Dd December 31, 2002 +.Dt RUBY(1) "" "Ruby Programmers Reference Guide" +.\".Dt RUBY 1 +.Os UNIX +.Sh NAME +.Nm ruby +.Nd Interpreted object-oriented scripting language +.Sh SYNOPSIS +.Nm +.Op Fl -copyright +.Op Fl -version +.Op Fl Sacdlnpswvy +.Op Fl 0 Ns Op Ar octal +.Op Fl C Ar directory +.Op Fl F Ar pattern +.Op Fl I Ar directory +.Op Fl K Ar c +.Op Fl T Ns Op Ar level +.Op Fl e Ar command +.Op Fl i Ns Op Ar extension +.Op Fl r Ar library +.Op Fl x Ns Op Ar directory +.Op Fl - +.Op Ar program_file +.Op Ar argument ... +.Sh 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. +.Pp +If you want a language for easy object-oriented programming, 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. +.Sh FEATURES +Ruby's features are as follows: +.Bl -tag -width 6n +.It Sy "Interpretive" +Ruby is an interpreted language, so you don't have to recompile +programs written in Ruby to execute them. +.Pp +.It Sy "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. +.Pp +.It Sy "No declaration needed" +You can use variables in your Ruby programs without any declarations. +Variable names denote their scope, local, global, instance, etc. +.Pp +.It Sy "Simple syntax" +Ruby has a simple syntax influenced slightly from Eiffel. +.Pp +.It Sy "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. +.Pp +.It Sy "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. +.Pp +.It Sy "Class, inheritance, and methods" +Of course, as an object-oriented language, Ruby has such basic +features like classes, inheritance, and methods. +.Pp +.It Sy "Singleton methods" +Ruby has the ability to define methods for certain objects. For +example, you can define a press-button action for certain widget by +defining a singleton method for the button. Or, you can make up your +own prototype based object system using singleton methods, if you want +to. +.Pp +.It Sy "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 +implementations across the inheritance tree. This is often called +.Sq Mix-in . +.Pp +.It Sy "Iterators" +Ruby has iterators for loop abstraction. +.Pp +.It Sy "Closures" +In Ruby, you can objectify the procedure. +.Pp +.It Sy "Text processing and regular expression" +Ruby has a bunch of text processing features like in Perl. +.Pp +.It Sy "Bignums" +With built-in bignums, you can for example calculate factorial(400). +.Pp +.It Sy "Exception handling" +As in Java(tm). +.Pp +.It Sy "Direct access to the OS" +Ruby can use most +.Ux +system calls, often used in system programming. +.Pp +.It Sy "Dynamic loading" +On most +.Ux +systems, you can load object files into the Ruby interpreter +on-the-fly. +.El +.Pp +.Sh OPTIONS +Ruby interpreter accepts following command-line options (switches). +They are quite similar to those of +.Xr perl 1 . +.Bl -tag -width "1234567890123" -compact +.Pp +.It Fl -copyright +Prints the copyright notice. +.Pp +.It Fl -version +Prints the version of Ruby interpreter. +.Pp +.It Fl 0 Ns Op Ar octal +(The digit +.Dq zero . ) +Specifies the input record separator +.Pf ( Li "$/" ) +as an octal number. If no digit is given, the null character is taken +as the separator. Other switches may follow the digits. +.Fl 00 +turns Ruby into paragraph mode. +.Fl 0777 +makes Ruby read whole file at once as a single string since there is +no legal character with that value. +.Pp +.It Fl C Ar directory +Causes Ruby to switch to the directory. +.Pp +.It Fl F Ar pattern +Specifies input field separator +.Pf ( Li "$;" ) . +.Pp +.It Fl I Ar directory +Used to tell Ruby where to load the library scripts. Directory path +will be added to the load-path variable +.Pf ( Li "$:" ) . +.Pp +.It Fl K Ar kcode +Specifies KANJI (Japanese) encoding. +.Pp +.It Fl S +Makes Ruby use the +.Ev PATH +environment variable to search for script, unless if its name begins +with a slash. This is used to emulate +.Li #! +on machines that don't support it, in the following manner: +.Bd -literal -offset indent +#! /usr/local/bin/ruby +# This line makes the next one a comment in Ruby \e + exec /usr/local/bin/ruby -S $0 $* +.Ed +.Pp +.It Fl T Ns Op Ar level +Turns on taint checks at the specified level (default 1). +.Pp +.It Fl a +Turns on auto-split mode when used with +.Fl n +or +.Fl p . +In auto-split mode, Ruby executes +.Dl $F = $_.split +at beginning of each loop. +.Pp +.It Fl c +Causes Ruby to check the syntax of the script and exit without +executing. If there are no syntax errors, Ruby will print +.Dq Syntax OK +to the standard output. +.Pp +.It Fl d +.It Fl -debug +Turns on debug mode. +.Li "$DEBUG" +will be set to true. +.Pp +.It Fl e Ar command +Specifies script from command-line while telling Ruby not to search +the rest of arguments for a script file name. +.Pp +.It Fl h +.It Fl -help +Prints a summary of the options. +.Pp +.It Fl i Ar extension +Specifies in-place-edit mode. The extension, if specified, is added +to old file name to make a backup copy. For example: +.Bd -literal -offset indent +% 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 +.Ed +.Pp +.It Fl l +(The lowercase letter +.Dq ell . ) +Enables automatic line-ending processing, which means to firstly set +.Li "$\e" +to the value of +.Li "$/" , +and secondly chops every line read using +.Li chop! . +.Pp +.It Fl n +Causes Ruby to assume the following loop around your script, which +makes it iterate over file name arguments somewhat like +.Nm sed +.Fl n +or +.Nm awk . +.Bd -literal -offset indent +while gets + ... +end +.Ed +.Pp +.It Fl p +Acts mostly same as -n switch, but print the value of variable +.Li "$_" +at the each end of the loop. For example: +.Bd -literal -offset indent +% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"' +MATZ +.Ed +.Pp +.It Fl r Ar library +Causes Ruby to load the library using require. It is useful when using +.Fl n +or +.Fl p . +.Pp +.It Fl s +Enables some switch parsing for switches after script name but before +any file name arguments (or before a +.Fl - ) . +Any switches found there are removed from +.Li ARGV +and set the corresponding variable in the script. For example: +.Bd -literal -offset indent +#! /usr/local/bin/ruby -s +# prints "true" if invoked with `-xyz' switch. +print "true\en" if $xyz +.Ed +.Pp +On some systems +.Li "$0" +does not always contain the full pathname, so you need the +.Fl S +switch to tell Ruby to search for the script if necessary. To handle +embedded spaces or such. A better construct than +.Li "$*" +would be +.Li ${1+"$@"} , +but it does not work if the script is being interpreted by +.Xr csh 1 . +.Pp +.It Fl v +.It Fl -verbose +Enables verbose mode. Ruby will print its version at the beginning, +and set the variable +.Li "$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 printing its version. +.Pp +.It Fl w +Enables verbose mode without printing version message at the +beginning. It sets the +.Li "$VERBOSE" +variable to true. +.Pp +.It Fl x Ns Op Ar directory +Tells Ruby that the script is embedded in a message. Leading garbage +will be discarded until the first that starts with +.Dq #! +and contains the string, +.Dq ruby . +Any meaningful switches on that line will applied. The end of script +must be specified with either +.Li EOF , +.Li "^D" ( Li "control-D" ) , +.Li "^Z" ( Li "control-Z" ) , +or reserved word +.Li __END__ . +If the directory name is specified, Ruby will switch to that directory +before executing script. +.Pp +.It Fl y +.It Fl -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. +.El +.Pp +.Sh ENVIRONMENT +.Bl -tag -width "RUBYLIB_PREFIX" -compact +.It Ev RUBYLIB +A colon-separated list of directories that are added to Ruby's +library load path +.Pf ( Li "$:" ) . Directories from this environment variable are searched +before the standard load path is searched. +.Pp +e.g.: +.Dl RUBYLIB="$HOME/lib/ruby:$HOME/lib/rubyext" +.Pp +.It Ev RUBYOPT +Additional Ruby options. +.Pp +e.g. +.Dl RUBYOPT="-w -Ke" +.Pp +.It Ev RUBYPATH +A colon-separated list of directories that Ruby searches for +Ruby programs when the +.Fl S +flag is specified. This variable precedes the +.Ev PATH +environment variable. +.Pp +.It Ev RUBYSHELL +The path to the system shell command. This environment variable is +enabled for only mswin32, mingw32, and OS/2 platforms. If this +variable is not defined, Ruby refers to +.Ev COMSPEC . +.Pp +.It Ev PATH +Ruby refers to the +.Ev PATH +environment variable on calling Kernel#system. +.Pp +.It Ev RUBYLIB_PREFIX +This variable is obsolete. +.El +.Pp +.Sh AUTHORS +Ruby is designed and implemented by +.An Yukihiro Matsumoto Aq matz@netlab.jp . |