From 92d172e9c3814860fdec497feeb7462e874d7e60 Mon Sep 17 00:00:00 2001 From: yugui Date: Sat, 25 Oct 2008 15:15:24 +0000 Subject: * man/ruby.1: moved into man/. added some descriptions. * man/goruby.1: new file. * instruby.rb (:man): followed ruby.1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 + instruby.rb | 10 +- man/goruby.1 | 39 +++++ man/ruby.1 | 488 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ruby.1 | 486 ---------------------------------------------------------- 5 files changed, 543 insertions(+), 488 deletions(-) create mode 100644 man/goruby.1 create mode 100644 man/ruby.1 delete mode 100644 ruby.1 diff --git a/ChangeLog b/ChangeLog index 084a34f14c..197ccb0340 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sun Oct 26 00:11:48 2008 Yuki Sonoda (Yugui) + + * man/ruby.1: moved into man/. added some descriptions. + + * man/goruby.1: new file. + + * instruby.rb (:man): followed ruby.1. + Sat Oct 25 20:05:22 2008 Narihiro Nakamura * gc.c (gc_profile_result): bug fix. The millisecond is 1/1000. diff --git a/instruby.rb b/instruby.rb index 02b74c4ebe..634e86d069 100755 --- a/instruby.rb +++ b/instruby.rb @@ -368,12 +368,18 @@ end install?(:local, :comm, :man) do puts "installing manpages" - Dir.chdir(srcdir) + has_goruby = File.exist?(goruby_install_name+exeext) + Dir.chdir("#{srcdir}/man") for mdoc in Dir["*.[1-9]"] next unless File.file?(mdoc) and open(mdoc){|fh| fh.read(1) == '.'} + if mdoc == "goruby.1" + next unless has_goruby + end destdir = mandir + mdoc[/(\d+)$/] - destfile = File.join(destdir, mdoc.sub(/ruby/, ruby_install_name)) + section = $1 + destname = ruby_install_name.sub(/ruby/, File.basename(mdoc, ".#{section}")) + destfile = File.join(destdir, "#{destname}.#{section}") makedirs destdir diff --git a/man/goruby.1 b/man/goruby.1 new file mode 100644 index 0000000000..340b6ceb18 --- /dev/null +++ b/man/goruby.1 @@ -0,0 +1,39 @@ +.\"Ruby is copyrighted by Yukihiro Matsumoto . +.Dd October 25, 2008 +.Dt GORUBY(1) "" "Ruby Programmers Reference Guide" +.Os UNIX +.Sh NAME +.Nm goruby +.Nd Code-golfer's best friend +.Sh SYNOPSIS +.Nm +.Op options ... +.Op Fl - +.Op Ar program_file +.Op Ar argument ... +.Sh DESCRIPTION +.Sy goruby +is a kind of Ruby language processor, +which recognizes extremely shorten programs as bellow; +.Bd -literal -offset indent +rq"date";s De.td +.Ed +.Pp +This means +.Bd -literal -offset indent +require"date";puts Date.today +.Ed +.Pp +.Sh OPTIONS +.Sy goruby +takes same options as +.Xr ruby 1 . +.Sh SEE ALSO +.Bl -hang -compact -width "ruby(1)" +.It Xr ruby 1 +The stiff version of Ruby interpreter. +.El +.Pp +.Sh AUTHORS +Originally written by Nobuyoshi Nakada and developed by +Ruby core team. diff --git a/man/ruby.1 b/man/ruby.1 new file mode 100644 index 0000000000..730c7a9838 --- /dev/null +++ b/man/ruby.1 @@ -0,0 +1,488 @@ +.\"Ruby is copyrighted by Yukihiro Matsumoto . +.Dd October 25, 2008 +.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 SUacdlnpswvy +.Op Fl 0 Ns Op Ar octal +.Op Fl C Ar directory +.Op Fl E Ar external Ns Op : Ns Ar internal +.Op Fl F Ar pattern +.Op Fl I Ar directory +.Op Fl K Ar c +.Op Fl T Ns Op Ar level +.Op Fl W 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 - Ns Bro Cm enable Ns | Ns Cm disable Brc Ns - Ns Ar FEATURE +.Op Fl -verbose +.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 "M17N, character set independent" +Ruby supports multilingualized programming. Easy to process texts +written in many different natural languages and encoded in many +different character encodings, without dependence on Unicode. +.Pp +.It Sy "Bignums" +With built-in bignums, you can for example calculate factorial(400). +.Pp +.It Sy "Reflection and domain specific languages" +Class is also an instance of Class class. Definition of classes and methods +is just an expression as 1+1 is. So your programs can even write and modify programs. +Thus you can write your application in your own programming language on top of Ruby. +.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. +.It Sy "Rich libraries" +Libraries called "builtin libraries" and "standard libraries" are bundled with Ruby. +And you can obtain more libraries via the package management system called `RubyGems'. + +Moreover there are thousands of Ruby projects in Rubyforge +.Pf ( "http://www.rubyforge.org" ) and RAA +.Pf ( "http://raa.ruby-lang.org" ) Ns . +.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 +.It Fl X Ar directory +Causes Ruby to switch to the directory. +.Pp +.It Fl E Ar external Ns Op : Ns Ar internal +.It Fl -encoding Ar external Ns Op : Ns Ar internal +Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:). + +You can ommit the one for internal encodings, then the value +.Pf ( Li "Encoding.default_internal" ) will be nil. +.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. The default value for script encodings +.Pf ( Li "__ENCODING__" ) and external encodings ( Li "Encoding.default_external" ) will be the specified one. +.Ar kcode +can be one of +.Bl -hang -offset indent +.It Sy e +EUC-JP +.Pp +.It Sy s +Windows-31J (CP932) +.Pp +.It Sy u +UTF-8 +.Pp +.It Sy n +ASCII-8BIT (BINARY) +.El +.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 U +Sets the defalut value for internal encodings +.Pf ( Li "Encoding.default_internal" ) to UTF-8. +.Pp +.It Fl W Ns Op Ar level +Turns on verbose mode at the specified level, without printing version +message at the beginning. The level can be; +.Bl -hang -offset indent +.It Sy 0 +Verbose mode is "silence". It sets the +.Li "$VERBOSE" +to nil. +.Pp +.It Sy 1 +Verbose mode is "medium". It sets the +.Li "$VERBOSE" +to false. +.Pp +.It Sy 2 (default) +Verbose mode is "verbose". It sets the +.Li "$VERBOSE" +to true. +.Fl W Ns +2 is same as +.Fl w +. +.El +.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 +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. +.Pp +.It Fl -disable- Ns Ar FEATURE +.It Fl -enable- Ns Ar FEATURE +Disables (or enables) the specified +.Ar FEATURE Ns +\&. +.Bl -tag -width "--disable-rubyopt" -compact +.It Fl -disable-gems +.It Fl -enable-gems +Disables (or enables) RubyGems libraries. By default, Ruby will load the latest +version of each installed gem. The +.Li Gem +constant is true if RubyGems is enabled, false if otherwise. +.Pp +.It Fl -disable-rubyopt +.It Fl -enable-rubyopt +Ignores (or considers) the +.Ev RUBYOPT +environment variable. By default, Ruby considers the variable. +.Pp +.It Fl -disable-all +.It Fl -enable-all +Disables (or enables) all features. +.Pp +.El +.Pp +.It Fl -verbose +Enables verbose mode without printing version message at the +beginning. It sets the +.Li "$VERBOSE" +variable to true. +If this switch is given, and no other switches are present, Ruby quits +after printing its version. +.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 +And Ruby depends on some RubyGems related environment variables unless disabled RubyGems. +See the help of +.Xr gem 1 +as bellow. +.Bd -literal -offset indent +% gem help +.Ed +.Pp +.Sh SEE ALSO +.Bl -hang -compact -width "http://www.ruby-lang.org/123" +.It http://www.ruby-lang.org +The official web site. +.It http://www.rubyforge.org +hosting many open source ruby projects. +.It http://raa.ruby-lang.org +Ruby Application Archive. +.El +.Pp +.Sh REPORTING BUGS +.Bl -bullet +.Li Security vulnerabilities should be reported via an email to +.Aq security@ruby-lang.org Ns +.Li . +Reported problems will be published after fixed. +.Pp +.Li And you can report other bugs and feature requests via the +Ruby Issue Tracking System (http://redmine.ruby-lang.org). +Do not report security vulnerabilities +via the system because it publishes the vulnerabilities immedately. +.El +.Sh AUTHORS +Ruby is designed and implemented by +.An Yukihiro Matsumoto Aq matz@netlab.jp . + +See <\fBhttp://redmine.ruby-lang.org/wiki/ruby/Contributors\fR> for contributors to Ruby. diff --git a/ruby.1 b/ruby.1 deleted file mode 100644 index 6d0565da90..0000000000 --- a/ruby.1 +++ /dev/null @@ -1,486 +0,0 @@ -.\"Ruby is copyrighted by Yukihiro Matsumoto . -.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 SUacdlnpswvy -.Op Fl 0 Ns Op Ar octal -.Op Fl C Ar directory -.Op Fl E Ar external Ns Op : Ns Ar internal -.Op Fl F Ar pattern -.Op Fl I Ar directory -.Op Fl K Ar c -.Op Fl T Ns Op Ar level -.Op Fl W 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 - Ns Bro Cm enable Ns | Ns Cm disable Brc Ns - Ns Ar FEATURE -.Op Fl -verbose -.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 "M17N, character set independent" -Ruby supports multilingualized programming. Easy to process texts -written in many different natural languages and encoded in many -different character encodings, without dependence on Unicode. -.Pp -.It Sy "Bignums" -With built-in bignums, you can for example calculate factorial(400). -.Pp -.It Sy "Reflection and domain specific languages" -Class is also an instance of Class class. Definition of classes and methods -is just an expression as 1+1 is. So your programs can even write and modify programs. -Thus you can write your application in your own programming language on top of Ruby. -.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. -.It Sy "Rich libraries" -Libraries called "builtin libraries" and "standard libraries" are bundled with Ruby. -And you can obtain more libraries via the package management system called `RubyGems'. - -Moreover there are thousands of Ruby projects in Rubyforge -.Pf ( "http://www.rubyforge.org" ) and RAA -.Pf ( "http://raa.ruby-lang.org" ) Ns . -.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 -.It Fl X Ar directory -Causes Ruby to switch to the directory. -.Pp -.It Fl E Ar external Ns Op : Ns Ar internal -.It Fl -encoding Ar external Ns Op : Ns Ar internal -Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:). - -You can ommit the one for internal encodings, then the value -.Pf ( Li "Encoding.default_internal" ) will be nil. -.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. The default value for script encodings -.Pf ( Li "__ENCODING__" ) and external encodings ( Li "Encoding.default_external" ) will be the specified one. -.Ar kcode -can be one of -.Bl -hang -offset indent -.It Sy e -EUC-JP -.Pp -.It Sy s -Windows-31J (CP932) -.Pp -.It Sy u -UTF-8 -.Pp -.It Sy n -ASCII-8BIT (BINARY) -.El -.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 U -Sets the defalut value for internal encodings -.Pf ( Li "Encoding.default_internal" ) to UTF-8. -.Pp -.It Fl W Ns Op Ar level -Turns on verbose mode at the specified level, without printing version -message at the beginning. The level can be; -.Bl -hang -offset indent -.It Sy 0 -Verbose mode is "silence". It sets the -.Li "$VERBOSE" -to nil. -.Pp -.It Sy 1 -Verbose mode is "medium". It sets the -.Li "$VERBOSE" -to false. -.Pp -.It Sy 2 (default) -Verbose mode is "verbose". It sets the -.Li "$VERBOSE" -to true. -.Fl W Ns -2 is same as -.Fl w -. -.El -.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 -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. -.Pp -.It Fl -disable- Ns Ar FEATURE -.It Fl -enable- Ns Ar FEATURE -Disables (or enables) the specified -.Ar FEATURE Ns -\&. -.Bl -tag -width "--disable-rubyopt" -compact -.It Fl -disable-gems -.It Fl -enable-gems -Disables (or enables) RubyGems libraries. By default, Ruby will load the latest -version of each installed gem. The -.Li Gem -constant is true if RubyGems is enabled, false if otherwise. -.Pp -.It Fl -disable-rubyopt -.It Fl -enable-rubyopt -Ignores (or considers) the -.Ev RUBYOPT -environment variable. By default, Ruby considers the variable. -.Pp -.It Fl -disable-all -.It Fl -enable-all -Disables (or enables) all features. -.Pp -.El -.Pp -.It Fl -verbose -Enables verbose mode without printing version message at the -beginning. It sets the -.Li "$VERBOSE" -variable to true. -If this switch is given, and no other switches are present, Ruby quits -after printing its version. -.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 -And Ruby depends on some RubyGems related environment variables unless disabled RubyGems. -See the help of -.Xr gem 1 -as bellow. -.Bd -literal -offset indent -% gem help -.Ed -.Pp -.Sh SEE ALSO -.Bl -hang -compact -width "http://www.ruby-lang.org/123" -.It http://www.ruby-lang.org -The official web site. -.It http://www.rubyforge.org -hosting many open source ruby projects. -.It http://raa.ruby-lang.org -Ruby Application Archive. -.El -.Pp -.Sh REPORTING BUGS -.Bl -bullet -.Li Security vulnerabilities should be reported via an email to -.Aq security@ruby-lang.org Ns -.Li . -Reported problems will be published after fixed. -.Pp -.Li And you can report other bugs and feature requests via the -Ruby Issue Tracking System (http://redmine.ruby-lang.org). -Do not report security vulnerabilities -via the system because it publishes the vulnerabilities immedately. -.El -.Sh AUTHORS -Ruby is designed and implemented by -.An Yukihiro Matsumoto Aq matz@netlab.jp . -- cgit v1.2.3