diff options
author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-16 18:49:26 +0900 |
---|---|---|
committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-30 00:39:06 +0900 |
commit | fcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch) | |
tree | 64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/man |
Fresh start
Diffstat (limited to 'jni/ruby/man')
-rw-r--r-- | jni/ruby/man/erb.1 | 157 | ||||
-rw-r--r-- | jni/ruby/man/goruby.1 | 39 | ||||
-rw-r--r-- | jni/ruby/man/irb.1 | 173 | ||||
-rw-r--r-- | jni/ruby/man/rake.1 | 141 | ||||
-rw-r--r-- | jni/ruby/man/ri.1 | 181 | ||||
-rw-r--r-- | jni/ruby/man/ruby.1 | 629 |
6 files changed, 1320 insertions, 0 deletions
diff --git a/jni/ruby/man/erb.1 b/jni/ruby/man/erb.1 new file mode 100644 index 0000000..8c47e58 --- /dev/null +++ b/jni/ruby/man/erb.1 @@ -0,0 +1,157 @@ +.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. +.Dd November 7, 2012 +.Dt ERB(1) "" "Ruby Programmers Reference Guide" +.Os UNIX +.Sh NAME +.Nm erb +.Nd Ruby Templating +.Sh SYNOPSIS +.Nm +.Op Fl -version +.Op Fl UPdnvx +.Op Fl E Ar ext Ns Op Ns : Ns int +.Op Fl S Ar level +.Op Fl T Ar mode +.Op Fl r Ar library +.Op Fl - +.Op file ... +.Pp +.Sh DESCRIPTION +.Nm +is a command line front-end for +.Li "ERB" +library, which is an implementation of eRuby. +.Pp +ERB provides an easy to use but powerful templating system for Ruby. +Using ERB, actual Ruby code can be added to any plain text document for the +purposes of generating document information details and/or flow control. +.Pp +.Nm +is a part of +.Nm Ruby . +.Pp +.Sh OPTIONS +.Bl -tag -width "1234567890123" -compact +.Pp +.It Fl -version +Prints the version of +.Nm . +.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 (:). +.Pp +You can omit the one for internal encodings, then the value +.Pf ( Li "Encoding.default_internal" ) will be nil. +.Pp +.It Fl P +Evaluates lines starting with +.Li "%" +as Ruby code and removes the tailing EOLs. +.Pp +.It Fl S Ar level +Specifies the safe level in which eRuby script will run. +.Pp +.It Fl T Ar mode +Specifies trim mode (default 0). +.Ar mode +can be one of +.Bl -hang -offset indent +.It Sy 0 +EOL remains after the embedded ruby script is evaluated. +.Pp +.It Sy 1 +EOL is removed if the line ends with +.Li "%>" . +.Pp +.It Sy 2 +EOL is removed if the line starts with +.Li "<%" +and ends with +.Li "%>" . +.Pp +.It Sy - +EOL is removed if the line ends with +.Li "-%>" . +And leading whitespaces are removed if the erb directive starts with +.Li "<%-" . +.Pp +.El +.Pp +.It Fl U +can be one of +Sets the default value for internal encodings +.Pf ( Li "Encoding.default_internal" ) to UTF-8. +.Pp +.It Fl d +.It Fl -debug +Turns on debug mode. +.Li "$DEBUG" +will be set to true. +.Pp +.It Fl h +.It Fl -help +Prints a summary of the options. +.Pp +.It Fl n +Used with +.Fl x . +Prepends the line number to each line in the output. +.Pp +.It Fl v +Enables verbose mode. +.Li "$VERBOSE" +will be set to true. +.Pp +.It Fl x +Converts the eRuby script into Ruby script and prints it without line numbers. +.Pp +.El +.Pp +.Sh EXAMPLES +Here is an eRuby script +.Bd -literal -offset indent +<?xml version="1.0" ?> +<% require 'prime' -%> +<erb-example> + <calc><%= 1+1 %></calc> + <var><%= __FILE__ %></var> + <library><%= Prime.each(10).to_a.join(", ") %></library> +</erb-example> +.Ed +.Pp +Command +.Dl "% erb -T - example.erb" +prints +.Bd -literal -offset indent +<?xml version="1.0" ?> +<erb-example> + <calc>2</calc> + <var>example.erb</var> + <library>2, 3, 5, 7</library> +</erb-example> +.Ed +.Pp +.Sh SEE ALSO +.Xr ruby 1 . +.Pp +And see +.Xr ri 1 +documentation for +.Li "ERB" +class. +.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 being fixed. +.Pp +.Li And you can report other bugs and feature requests via the +Ruby Issue Tracking System (http://bugs.ruby-lang.org). +Do not report security vulnerabilities +via the system because it publishes the vulnerabilities immediately. +.El +.Sh AUTHORS +Written by Masatoshi SEKI. diff --git a/jni/ruby/man/goruby.1 b/jni/ruby/man/goruby.1 new file mode 100644 index 0000000..62a7bad --- /dev/null +++ b/jni/ruby/man/goruby.1 @@ -0,0 +1,39 @@ +.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. +.Dd November 7, 2012 +.Dt GORUBY(1) "" "Ruby Programmers Reference Guide" +.Os UNIX +.Sh NAME +.Nm goruby +.Nd A 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 shortened programs as below: +.Bd -literal -offset indent +rq"date";s De.td +.Ed +.Pp +Which 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 the +Ruby core team. diff --git a/jni/ruby/man/irb.1 b/jni/ruby/man/irb.1 new file mode 100644 index 0000000..543217e --- /dev/null +++ b/jni/ruby/man/irb.1 @@ -0,0 +1,173 @@ +.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. +.Dd November 7, 2012 +.Dt IRB(1) "" "Ruby Programmers Reference Guide" +.Os UNIX +.Sh NAME +.Nm irb +.Nd Interactive Ruby Shell +.Sh SYNOPSIS +.Nm +.Op Fl -version +.Op Fl dfm +.Op Fl I Ar directory +.Op Fl r Ar library +.Op Fl - Ns Oo no Oc Ns inspect +.Op Fl - Ns Oo no Oc Ns readline +.Op Fl -prompt Ar mode +.Op Fl -prompt-mode Ar mode +.Op Fl -inf-ruby-mode +.Op Fl -simple-prompt +.Op Fl -noprompt +.Op Fl -tracer +.Op Fl -back-trace-limit Ar n +.Op Fl -irb_debug Ar n +.Op Fl - +.Op program_file +.Op argument ... +.Pp +.Sh DESCRIPTION +.Nm +is the REPL(read-eval-print loop) environment for Ruby programs. +.Pp +.Sh OPTIONS +.Bl -tag -width "1234567890123" -compact +.Pp +.It Fl -version +Prints the version of +.Nm . +.Pp +.It Fl E Ar external Ns Op : Ns Ar internal +.It Fl -encoding Ar external Ns Op : Ns Ar internal +Same as `ruby -E' . +Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:). +.Pp +You can omit the one for internal encodings, then the value +.Pf ( Li "Encoding.default_internal" ) will be nil. +.Pp +.It Fl I Ar path +Same as `ruby -I' . +Specifies +.Li $LOAD_PATH +directory +.Pp +.It Fl U +Same as `ruby -U' . +Sets the default value for internal encodings +.Pf ( Li "Encoding.default_internal" ) to UTF-8. +.Pp +.It Fl d +Same as `ruby -d' . +Sets +.Li $DEBUG +to true. +.Pp +.It Fl f +Suppresses read of +.Pa ~/.irbrc . +.Pp +.It Fl h +.It Fl -help +Prints a summary of the options. +.Pp +.It Fl m +Bc mode (load mathn, fraction or matrix are available) +.Pp +.It Fl r Ar library +Same as `ruby -r'. +Causes irb to load the library using require. +.Pp +.It Fl -inspect +Uses `inspect' for output (default except for bc mode) +.Pp +.It Fl -noinspect +Doesn't use inspect for output +.Pp +.It Fl -readline +Uses Readline extension module. +.Pp +.It Fl -noreadline +Doesn't use Readline extension module. +.Pp +.It Fl -prompt Ar mode +.It Fl -prompt-mode Ar mode +Switch prompt mode. Pre-defined prompt modes are +`default', `simple', `xmp' and `inf-ruby'. +.Pp +.It Fl -inf-ruby-mode +Uses prompt appropriate for inf-ruby-mode on emacs. +Suppresses --readline. +.Pp +.It Fl -simple-prompt +Makes prompts simple. +.Pp +.It Fl -noprompt +No prompt mode. +.Pp +.It Fl -tracer +Displays trace for each execution of commands. +.Pp +.It Fl -back-trace-limit Ar n +Displays backtrace top +.Ar n +and tail +.Ar n Ns . +The default value is 16. +.Pp +.It Fl -irb_debug Ar n +Sets internal debug level to n (not for popular use) +.Pp +.El +.Pp +.Sh ENVIRONMENT +.Bl -tag -width "RUBYLIB_PREFIX" -compact +.It Ev IRBRC +.Pp +.El +.Pp +Also +.Nm +depends on same variables as +.Xr ruby 1 . +.Pp +.Sh FILES +.Bl -tag -width "RUBYLIB_PREFIX" -compact +.It Pa ~/.irbrc +Personal irb initialization. +.Pp +.El +.Pp +.Sh EXAMPLES +.Dl % irb +.Dl irb(main):001:0> Ic 1 + 1 +.Dl 2 +.Dl irb(main):002:0> Ic def t(x) +.Dl irb(main):003:1> Ic x+1 +.Dl irb(main):004:1> Ic end +.Dl => nil +.Dl irb(main):005:0> Ic t(3) +.Dl => 4 +.Dl irb(main):006:0> Ic if t(3) == 4 +.Dl irb(main):007:1> Ic p :ok +.Dl irb(main):008:1> Ic end +.Dl :ok +.Dl => :ok +.Dl irb(main):009:0> Ic quit +.Dl % +.Pp +.Sh SEE ALSO +.Xr ruby 1 . +.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 being fixed. +.Pp +.Li And you can report other bugs and feature requests via the +Ruby Issue Tracking System (http://bugs.ruby-lang.org). +Do not report security vulnerabilities +via the system because it publishes the vulnerabilities immediately. +.El +.Sh AUTHORS +Written by Keiju ISHITSUKA. diff --git a/jni/ruby/man/rake.1 b/jni/ruby/man/rake.1 new file mode 100644 index 0000000..e2b5341 --- /dev/null +++ b/jni/ruby/man/rake.1 @@ -0,0 +1,141 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH RAKE 1 "August 27, 2014" "rake 10.3.2" "Rake User Commands" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp <n> insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +rake \- a make-like build utility for Ruby +.SH SYNOPSIS +\fBrake\fR [\fI\-f rakefile\fR] {\fIOPTIONS\fR} \fITARGETS...\fR +.br +.SH DESCRIPTION +.B rake +is a make-like build utility for Ruby. Tasks and dependencies are specified in +standard Ruby syntax. +.SH OPTIONS +.TP +\fB\-m\fR, \fB\-\-multitask\fR +Treat all tasks as multitasks. +.TP +\fB\-B\fR, \fB\-\-build\-all\fR +Build all prerequisites, including those which are up\-to\-date. + +.TP +\fB\-j\fR, \fB\-\-jobs\fR [\fINUMBER\fR] +Specifies the maximum number of tasks to execute in parallel (default is number of CPU cores + 4). + +.SS Modules +.TP +\fB\-I\fR, \fB\-\-libdir\fR \fILIBDIR\fR +Include \fILIBDIR\fR in the search path for required modules. +.TP +\fB\-r\fR, \fB\-\-require\fR \fIMODULE\fR +Require \fIMODULE\fR before executing rakefile. + +.SS Rakefile location +.TP +\fB\-f\fR, \fB\-\-rakefile\fR [\fIFILENAME\fR] +Use \fIFILENAME\fR as the rakefile to search for. +.TP +\fB\-N\fR, \fB\-\-no\-search\fR, \fB\-\-nosearch\fR +Do not search parent directories for the Rakefile. +.TP +\fB\-G\fR, \fB\-\-no\-system\fR, \fB\-\-nosystem\fR +Use standard project Rakefile search paths, ignore system wide rakefiles. +.TP +\fB\-R\fR, \fB\-\-rakelibdir\fR \fIRAKELIBDIR\fR +Auto\-import any .rake files in \fIRAKELIBDIR\fR (default is 'rakelib') +.HP +\fB\-\-rakelib\fR +.TP +\fB\-g\fR, \fB\-\-system\fR +Using system wide (global) rakefiles (usually '\fI~/.rake/*.rake\fR'). + +.SS Debugging +.TP +\fB\-\-backtrace\fR=\fI\,[OUT]\/\fR +Enable full backtrace. \fIOUT\fR can be stderr (default) or stdout. +.TP +\fB\-t\fR, \fB\-\-trace\fR=\fI\,[OUT]\/\fR +Turn on invoke/execute tracing, enable full backtrace. \fIOUT\fR can be stderr (default) or stdout. +.TP +\fB\-\-suppress\-backtrace\fR \fIPATTERN\fR +Suppress backtrace lines matching regexp \fIPATTERN\fR. Ignored if \fI\-\-trace\fR is on. +.TP +\fB\-\-rules\fR +Trace the rules resolution. + +.TP +\fB\-n\fR, \fB\-\-dry\-run\fR +Do a dry run without executing actions. +.TP +\fB\-T\fR, \fB\-\-tasks\fR [\fIPATTERN\fR] +Display the tasks (matching optional \fIPATTERN\fR) with descriptions, then exit. +.TP +\fB\-D\fR, \fB\-\-describe\fR [\fIPATTERN\fR] +Describe the tasks (matching optional \fIPATTERN\fR), then exit. +.TP +\fB\-W\fR, \fB\-\-where\fR [\fIPATTERN\fR] +Describe the tasks (matching optional \fIPATTERN\fR), then exit. +.TP +\fB\-P\fR, \fB\-\-prereqs\fR +Display the tasks and dependencies, then exit. + +.TP +\fB\-e\fR, \fB\-\-execute\fR \fICODE\fR +Execute some Ruby code and exit. +.TP +\fB\-p\fR, \fB\-\-execute\-print\fR \fICODE\fR +Execute some Ruby code, print the result, then exit. +.TP +\fB\-E\fR, \fB\-\-execute\-continue\fR \fICODE\fR +Execute some Ruby code, then continue with normal task processing. + +.SS Information +.TP +\fB\-v\fR, \fB\-\-verbose\fR +Log message to standard output. +.TP +\fB\-q\fR, \fB\-\-quiet\fR +Do not log messages to standard output. +.TP +\fB\-s\fR, \fB\-\-silent\fR +Like \fB\-\-quiet\fR, but also suppresses the 'in directory' announcement. +.TP +\fB\-X\fR, \fB\-\-no\-deprecation\-warnings\fR +Disable the deprecation warnings. +.TP +\fB\-\-comments\fR +Show commented tasks only +.TP +\fB\-A\fR, \fB\-\-all\fR +Show all tasks, even uncommented ones (in combination with \fB\-T\fR or \fB\-D\fR) +.TP +\fB\-\-job\-stats\fR [\fILEVEL\fR] +Display job statistics. \fILEVEL=history\fR displays a complete job list +.TP +\fB\-V\fR, \fB\-\-version\fR +Display the program version. +.TP +\fB\-h\fR, \fB\-H\fR, \fB\-\-help\fR +Display a help message. + +.SH SEE ALSO +The complete documentation for \fBrake\fR has been installed at \fI/usr/share/doc/rake-doc/html/index.html\fR. It is also available online at \fIhttp://docs.seattlerb.org/rake\fR. +.SH AUTHOR +.B rake +was written by Jim Weirich <jim@weirichhouse.org> +.PP +This manual was created by Caitlin Matos <caitlin.matos@zoho.com> for the Debian project (but may be used by others). It was inspired by the manual by Jani Monoses <jani@iv.ro> for the Ubuntu project. diff --git a/jni/ruby/man/ri.1 b/jni/ruby/man/ri.1 new file mode 100644 index 0000000..cadf4b8 --- /dev/null +++ b/jni/ruby/man/ri.1 @@ -0,0 +1,181 @@ +.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. +.Dd November 7, 2012 +.Dt RI(1) "" "Ruby Programmers Reference Guide" +.Os UNIX +.Sh NAME +.Nm ri +.Nd Ruby API reference front end +.Sh SYNOPSIS +.Nm +.Op Fl Ti +.Op Fl d Ar directory +.Op Fl f Ar format +.Op Fl -list-doc-dirs +.Op Fl -no-standard-docs +.Op Fl - Ns Oo Cm no- Oc Ns Bro Cm system Ns | Ns Cm site Ns | Ns Cm gems Ns | Ns Cm home Brc +.Op Fl - Ns Oo Cm no- Oc Ns Cm use-cache +.Op Fl -width Ns = Ns Ar width +.Op Ar target ... +.Sh DESCRIPTION +.Nm +is a CLI front end for the Ruby API reference. +You can search and read API reference for classes and methods with +.Nm . +.Pp +.Nm +is a part of Ruby. +.Pp +.Ar target +can be one of the following forms: +.Bl -diag -offset indent +.It Class +for classes +.It Class::method +for class methods +.It Class#method +for instance methods +.It Class.method +for both class and instance methods +.It method +for both class and instance methods +.El +.Pp +All class names may be abbreviated to their minimum unambiguous form. If a name +is ambiguous, all valid options will be listed. +.Pp +For example: +.Bd -literal -offset indent +ri Fil +ri File +ri File.new +ri zip +.Ed +.Pp +Note that shell quoting may be required for method names containing +punctuation: +.Bd -literal -offset indent +ri 'Array.[]' +ri compact\! +.Ed +.Sh OPTIONS +.Bl -tag -width "1234567890123" -compact +.Pp +.It Fl -version +Prints the version of +.Nm . +.Pp +.It Fl T +.It Fl -no-pager +Send output directly to stdout, rather than to a pager. +.Pp +.It Fl d Ar directory +.It Fl -doc-dir Ns = Ns Ar directory +List of directories from which to source documentation in addition to the standard +directories. May be repeated. +.Pp +.It Fl f Ar FORMAT +.It Fl -fmt Ar FORMAT +.It Fl -format Ns = Ns FORMAT +Format to use when displaying output: +.Pp +ansi, bs, html, plain, simple +.Pp +Use 'bs' (backspace) with most pager programs. To use ANSI, either disable the +pager or tell the pager to allow control characters. +.Pp +.It Fl i +.It Fl -interactive +This makes +.Nm +go into interactive mode. +.Pp +When +.Nm +is in interactive mode it will allow the user to disambiguate lists of +methods in case multiple methods match against a method search string. It also +will allow the user to enter in a method name (with auto-completion, if readline +is supported) when viewing a class. +.Pp +.It Fl -list-doc-dirs +List the directories from which ri will source documentation on stdout and exit. +.Pp +.It Fl -no-standard-docs +Do not include documentation from the Ruby standard library, +.Pa site_lib , +installed gems, or +.Pa ~/.rdoc . +.Pp +Equivalent to specifying the options +.Fl -no-system , Fl -no-site , Fl -no-gems , +and +.Fl -no-home . +.Pp +.It Fl - Ns Oo Cm no- Oc Ns Cm system +Include documentation from Ruby's standard library. Defaults to true. +.Pp +.It Fl - Ns Oo Cm no- Oc Ns Cm site + Include documentation from libraries installed in site_lib. Defaults to true. +.Pp +.It Fl - Ns Oo Cm no- Oc Ns Cm gems +Include documentation from RubyGems. Defaults to true. +.Pp +.It Fl - Ns Oo Cm no- Oc Ns Cm home +Include documentation stored in ~/.rdoc. Defaults to true. +.Pp +.It Fl - Ns Oo Cm no- Oc Ns Cm use-cache +Whether or not to use +.Nm Ns +.Ns 's cache. True by default. +.Pp +.It Fl w Ar width +.It Fl -width Ns = Ns Ar width +Set the width of the output. +.Pp +.El +.Pp +.Sh ENVIRONMENT +.Bl -tag -width "USERPROFILE" -compact +.Pp +.It Ev RI +Additional options. +.Pp +.It Ev PAGER +Used as the name of pager program for displaying. +.Pp +.It Ev HOME +.It Ev USERPROFILE +.It Ev HOMEPATH +Path to user's home directory. +.El +.Pp +.Sh FILES +.Bl -tag -width "USERPROFILE" -compact +.Pp +.It Pa ~/.ri +Caches recently referenced documents here. +.Pp +.It Pa ~/.rdoc +Searches user-wide documents here. +.Pp +.El +.Pp +.Sh SEE ALSO +.Xr ruby 1 +.Xr rdoc 1 +.Xr gem 1 +.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 being fixed. +.Pp +.Li And you can report other bugs and feature requests via the +Ruby Issue Tracking System (http://bugs.ruby-lang.org). +Do not report security vulnerabilities +via the system because it publishes the vulnerabilities immediately. +.El +.Sh AUTHORS +Written by Dave Thomas +.Aq dave@pragmaticprogrammer.com diff --git a/jni/ruby/man/ruby.1 b/jni/ruby/man/ruby.1 new file mode 100644 index 0000000..c35f130 --- /dev/null +++ b/jni/ruby/man/ruby.1 @@ -0,0 +1,629 @@ +.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. +.Dd November 7, 2012 +.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 -dump Ns = Ns Ar target +.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 (like 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 many parentheses, Ruby might be your language of +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 - global, class, instance, or local. +.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 a 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" +Being an object-oriented language, Ruby naturally has 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 a +.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 expressions" +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 the Class class. Definition of classes and methods +is an expression just 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'. +.Pp +Moreover there are thousands of Ruby projects on GitHub +.Aq Pa https://github.com/languages/Ruby . +.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 (:). +.Pp +You can omit the one for internal encodings, then the value +.Pf ( Li "Encoding.default_internal" ) will be nil. +.Pp +.It Fl -external-encoding Ns = Ns Ar encoding +.It Fl -internal-encoding Ns = Ns Ar encoding +Specify the default external or internal character encoding +.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 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=1 +Turns on taint checks at the specified level (default 1). +.Pp +.It Fl U +Sets the default value for internal encodings +.Pf ( Li "Encoding.default_internal" ) to UTF-8. +.Pp +.It Fl W Ns Op Ar level=2 +Turns on verbose mode at the specified level without printing the 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 the 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 and 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 line that starts with +.Dq #! +and contains the string, +.Dq ruby . +Any meaningful switches on that line will be applied. The end of the script +must be specified with either +.Li EOF , +.Li "^D" ( Li "control-D" ) , +.Li "^Z" ( Li "control-Z" ) , +or the 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 +DO NOT USE. +.Pp +Turns on compiler debug mode. Ruby will print a bunch of internal +state messages during compilation. Only specify this switch 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 -dump Ns = Ns Ar target +DO NOT USE. +.Pp +Prints the specified target. +.Ar target +can be one of; +.Bl -hang -offset indent +.It Sy insns +disassembled instructions +.Pp +.El +.Pp +Only specify this switch if you are going to debug the Ruby interpreter. +.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 "RUBYSHELL" -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 +Note that RUBYOPT can contain only +.Fl d , Fl E , Fl I , Fl K , Fl r , Fl T , Fl U , Fl v , Fl w , Fl W, Fl -debug , +.Fl -disable- Ns Ar FEATURE +and +.Fl -enable- Ns Ar FEATURE . +.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. +.El +.Pp +And Ruby depends on some RubyGems related environment variables unless RubyGems is disabled. +See the help of +.Xr gem 1 +as below. +.Bd -literal -offset indent +% gem help +.Ed +.Pp +.Sh GC ENVIRONMENT +The Ruby garbage collector (GC) tracks objects in fixed-sized slots, +but each object may have auxillary memory allocations handled by the +malloc family of C standard library calls ( +.Xr malloc 3 , +.Xr calloc 3 , +and +.Xr realloc 3 ) . +In this documentatation, the "heap" refers to the Ruby object heap +of fixed-sized slots, while "malloc" refers to auxillary +allocations commonly referred to as the "process heap". +Thus there are at least two possible ways to trigger GC: +.Bl -hang -offset indent +.It Sy 1 +Reaching the object limit. +.It Sy 2 +Reaching the malloc limit. +.Pp +.El +In Ruby 2.1, the generational GC was introduced and the limits are divided +into young and old generations, providing two additional ways to trigger +a GC: +.Bl -hang -offset indent +.It Sy 3 +Reaching the old object limit. +.It Sy 4 +Reaching the old malloc limit. +.El +.Pp +There are currently 4 possible areas where the GC may be tuned by +the the following 11 environment variables: +.Bl -hang -compact -width "RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR" +.It Ev RUBY_GC_HEAP_INIT_SLOTS +Initial allocation slots. Introduced in Ruby 2.1, default: 10000. +.Pp +.It Ev RUBY_GC_HEAP_FREE_SLOTS +Prepare at least this amount of slots after GC. +Allocate this number slots if there are not enough slots. +Introduced in Ruby 2.1, default: 4096 +.Pp +.It Ev RUBY_GC_HEAP_GROWTH_FACTOR +Increase allocation rate of heap slots by this factor. +Introduced in Ruby 2.1, default: 1.8, minimum: 1.0 (no growth) +.Pp +.It Ev RUBY_GC_HEAP_GROWTH_MAX_SLOTS +Allocation rate is limited to this number of slots, +preventing excessive allocation due to RUBY_GC_HEAP_GROWTH_FACTOR. +Introduced in Ruby 2.1, default: 0 (no limit) +.Pp +.It Ev RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR +Perform a full GC when the number of old objects is more than R * N, +where R is this factor and N is the number of old objects after the +last full GC. +Introduced in Ruby 2.1.1, default: 2.0 +.Pp +.It Ev RUBY_GC_MALLOC_LIMIT +The initial limit of young generation allocation from the malloc-family. +GC will start when this limit is reached. +Default: 16MB +.Pp +.It Ev RUBY_GC_MALLOC_LIMIT_MAX +The maximum limit of young generation allocation from malloc before GC starts. +Prevents excessive malloc growth due to RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR. +Introduced in Ruby 2.1, default: 32MB. +.Pp +.It Ev RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR +Increases the limit of young generation malloc calls, reducing +GC frequency but increasing malloc growth until RUBY_GC_MALLOC_LIMIT_MAX +is reached. +Introduced in Ruby 2.1, default: 1.4, minimum: 1.0 (no growth) +.Pp +.It Ev RUBY_GC_OLDMALLOC_LIMIT +The initial limit of old generation allocation from malloc, +a full GC will start when this limit is reached. +Introduced in Ruby 2.1, default: 16MB +.Pp +.It Ev RUBY_GC_OLDMALLOC_LIMIT_MAX +The maximum limit of old generation allocation from malloc before a +full GC starts. +Prevents excessive malloc growth due to RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR. +Introduced in Ruby 2.1, default: 128MB +.Pp +.It Ev RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR +Increases the limit of old generation malloc allocation, reducing full +GC frequency but increasing malloc growth until RUBY_GC_OLDMALLOC_LIMIT_MAX +is reached. +Introduced in Ruby 2.1, default: 1.2, minimum: 1.0 (no growth) +.Pp +.El +.Sh STACK SIZE ENVIRONMENT +Stack size environment variables are implementation-dependent and +subject to change with different versions of Ruby. The VM stack is used +for pure-Ruby code and managed by the virtual machine. Machine stack is +used by the operating system and its usage is dependent on C extensions +as well as C compiler options. Using lower values for these may allow +applications to keep more Fibers or Threads running; but increases the +chance of SystemStackError exceptions and segmentation faults (SIGSEGV). +These environment variables are available since Ruby 2.0.0. +All values are specified in bytes. +.Pp +.Bl -hang -compact -width "RUBY_THREAD_MACHINE_STACK_SIZE" +.It Ev RUBY_THREAD_VM_STACK_SIZE +VM stack size used at thread creation. +default: 131072 (32-bit CPU) or 262144 (64-bit) +.Pp +.It Ev RUBY_THREAD_MACHINE_STACK_SIZE +Machine stack size used at thread creation. +default: 524288 or 1048575 +.Pp +.It Ev RUBY_FIBER_VM_STACK_SIZE +VM stack size used at fiber creation. +default: 65536 or 131072 +.Pp +.It Ev RUBY_FIBER_MACHINE_STACK_SIZE +Machine stack size used at fiber creation. +default: 262144 or 524288 +.Pp +.El +.Sh SEE ALSO +.Bl -hang -compact -width "http://www.ruby-lang.org/123" +.It https://www.ruby-lang.org/ +The official web site. +.It https://www.ruby-toolbox.com/ +Comprehensive catalog of Ruby libraries. +.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 they've been fixed. +.Pp +.Li And you can report other bugs and feature requests via the +Ruby Issue Tracking System (https://bugs.ruby-lang.org/). +Do not report security vulnerabilities +via the system because it publishes the vulnerabilities immediately. +.El +.Sh AUTHORS +Ruby is designed and implemented by +.An Yukihiro Matsumoto Aq matz@netlab.jp . +.Pp +See +.Aq Pa https://bugs.ruby-lang.org/projects/ruby/wiki/Contributors +for contributors to Ruby. |