Pre-Defined Global Variables¶ ↑
Some of the pre-defined global variables have synonyms that are available via module English. For each of those, the English synonym is given.
To use the module:
require 'English'
In Brief¶ ↑
Exceptions¶ ↑
| Variable | English |
Contains | Initially | Read-Only | Reset By |
|---|---|---|---|---|---|
| ‘$!` | ‘$ERROR_INFO` | Exception object or ‘nil` |
‘nil` | Yes | Kernel#raise |
| ‘$@` | ‘$ERROR_POSITION` | Array of backtrace positions or ‘nil` |
‘nil` | Yes | Kernel#raise |
Matched Data¶ ↑
| Variable | English |
Contains | Initially | Read-Only | Reset By |
|---|---|---|---|---|---|
| ‘$~` | ‘$LAST_MATCH_INFO` | MatchData object or ‘nil` |
‘nil` | No | Matcher methods |
| ‘$&` | ‘$MATCH` | Matched substring or ‘nil` | ‘nil` | No | Matcher methods |
| “ $‘ “ | ‘$PRE_MATCH` | Substring left of match or ‘nil` | ‘nil` | No | Matcher methods |
| ‘$’‘ | ‘$POST_MATCH` | Substring right of match or ‘nil` | ‘nil` | No | Matcher methods |
| ‘$+` | ‘$LAST_PAREN_MATCH` | Last group matched or ‘nil` | ‘nil` | No | Matcher methods |
| ‘$1` | First group matched or ‘nil` | ‘nil` | Yes | Matcher methods | |
| ‘$2` | Second group matched or ‘nil` | ‘nil` | Yes | Matcher methods | |
$n |
nth group matched or ‘nil` | ‘nil` | Yes | Matcher methods |
Separators¶ ↑
| Variable | English |
Contains | Initially | Read-Only | Reset By |
|---|---|---|---|---|---|
| ‘$/`, `$-0` | ‘$INPUT_RECORD_SEPARATOR` | Input record separator | Newline | No | |
| ‘$` | ‘$OUTPUT_RECORD_SEPARATOR` | Output record separator | ‘nil` | No |
Streams¶ ↑
| Variable | English |
Contains | Initially | Read-Only | Reset By |
|---|---|---|---|---|---|
| ‘$stdin` | Standard input stream | ‘STDIN` | No | ||
| ‘$stdout` | Standard output stream | ‘STDOUT` | No | ||
| ‘$stderr` | Standard error stream | ‘STDERR` | No | ||
| ‘$<` | ‘$DEFAULT_INPUT` | Default standard input | ‘ARGF` | Yes | |
| ‘$>` | ‘$DEFAULT_OUTPUT` | Default standard output | ‘STDOUT` | No | |
| ‘$.` | ‘$INPUT_LINE_NUMBER`, `$NR` | Input position of most recently read stream | 0 | No | Certain read methods |
| ‘$_` | ‘$LAST_READ_LINE` | String from most recently read stream |
‘nil` | No | Certain read methods |
Processes¶ ↑
| Variable | English |
Contains | Initially | Read-Only | Reset By |
|---|---|---|---|---|---|
| ‘$0`, `$PROGRAM_NAME` | Program name | Program name | No | ||
| ‘$*` | ‘$ARGV` | ARGV array | ‘ARGV` | Yes | |
| ‘$$` | ‘$PROCESS_ID`, `$PID` | Process id |
Process PID |
Yes | |
| ‘$?` | ‘$CHILD_STATUS` | Status of recently exited child | ‘nil` | Yes | |
| ‘$LOAD_PATH`, `$:`, `$-I` | Array of search paths |
Ruby defaults |
Yes | ||
| ‘$LOADED_FEATURES`, `$“` | Array of load paths |
Ruby defaults |
Yes |
Debugging¶ ↑
| Variable | English |
Contains | Initially | Read-Only | Reset By |
|---|---|---|---|---|---|
| ‘$FILENAME` | Value returned by method ‘ARGF.filename` | Command-line argument or ‘-’ | Yes | ||
| ‘$DEBUG` | Whether option ‘-d` or `–debug` was given | Command-line option | No | ||
| ‘$VERBOSE` | Whether option ‘-V` or `-W` was given | Command-line option | No |
Other Variables¶ ↑
| Variable | English |
Contains | Initially | Read-Only | Reset By |
|---|---|---|---|---|---|
| ‘$-F`, `$;` | Separator given with command-line option ‘-F` | ||||
| ‘$-a` | Whether option ‘-a` was given | Yes | |||
| ‘$-i` | Extension given with command-line option ‘-i` | No | |||
| ‘$-l` | Whether option ‘-l` was given | Yes | |||
| ‘$-p` | Whether option ‘-p` was given | Yes | |||
| ‘$F` | Array of ‘$_` split by `$-F` |
Exceptions¶ ↑
$! (Exception)¶ ↑
Contains the Exception object set by Kernel#raise:
begin raise RuntimeError.new('Boo!') rescue RuntimeError p $! end
Output:
#<RuntimeError: Boo!>
English - $ERROR_INFO
$@ (Backtrace)¶ ↑
Same as $!.backtrace; returns an array of backtrace positions:
begin raise RuntimeError.new('Boo!') rescue RuntimeError pp $@.take(4) end
Output:
["(irb):338:in `<top (required)>'", "/snap/ruby/317/lib/ruby/3.2.0/irb/workspace.rb:119:in `eval'", "/snap/ruby/317/lib/ruby/3.2.0/irb/workspace.rb:119:in `evaluate'", "/snap/ruby/317/lib/ruby/3.2.0/irb/context.rb:502:in `evaluate'"]
English - $ERROR_POSITION.
Matched Data¶ ↑
These global variables store information about the most recent successful match in the current scope.
For details and examples, see Regexp Global Variables.
$~ (MatchData)¶ ↑
MatchData object created from the match; thread-local and frame-local.
English - $LAST_MATCH_INFO.
$& (Matched Substring)¶ ↑
The matched string.
English - $MATCH.
$` (Pre-Match Substring)¶ ↑
The string to the left of the match.
English - $PREMATCH.
$' (Post-Match Substring)¶ ↑
The string to the right of the match.
English - $POSTMATCH.
$+ (Last Matched Group)¶ ↑
The last group matched.
English - $LAST_PAREN_MATCH.
$1, $2, Etc. (Matched Group)¶ ↑
For $n the nth group of the match.
No English.
Separators¶ ↑
$/ (Input Record Separator)¶ ↑
An input record separator, initially newline. Set by the {command-line option -0}.
Setting to non-nil value by other than the command-line option is deprecated.
English - $INPUT_RECORD_SEPARATOR, $RS.
Aliased as $-0.
<code>$</code> (Output Record Separator)¶ ↑
An output record separator, initially nil.
Copied from $/ when the {command-line option -l} is given.
Setting to non-nil value by other than the command-line option is deprecated.
English - $OUTPUT_RECORD_SEPARATOR, $ORS.
Streams¶ ↑
$stdin (Standard Input)¶ ↑
The current standard input stream; initially:
$stdin # => #<IO:<STDIN>>
$stdout (Standard Output)¶ ↑
The current standard output stream; initially:
$stdout # => #<IO:<STDOUT>>
$stderr (Standard Error)¶ ↑
The current standard error stream; initially:
$stderr # => #<IO:<STDERR>>
$< (ARGF or $stdin)¶ ↑
Points to stream ARGF if not empty, else to stream $stdin; read-only.
English - $DEFAULT_INPUT.
$> (Default Standard Output)¶ ↑
An output stream, initially $stdout.
English - $DEFAULT_OUTPUT
$. (Input Position)¶ ↑
The input position (line number) in the most recently read stream.
English - $INPUT_LINE_NUMBER, $NR
$_ (Last Read Line)¶ ↑
The line (string) from the most recently read stream.
English - $LAST_READ_LINE.
Processes¶ ↑
$0¶ ↑
Initially, contains the name of the script being executed; may be reassigned.
$* (ARGV)¶ ↑
Points to ARGV.
English - $ARGV.
$$ (Process ID)¶ ↑
The process ID of the current process. Same as Process.pid.
English - $PROCESS_ID, $PID.
$? (Child Status)¶ ↑
Initially nil, otherwise the Process::Status object created for the most-recently exited child process; thread-local.
English - $CHILD_STATUS.
$LOAD_PATH (Load Path)¶ ↑
Contains the array of paths to be searched by Kernel#load and Kernel#require.
Singleton method $LOAD_PATH.resolve_feature_path(feature) returns:
-
[:rb, path], wherepathis the path to theRubyfile to be loaded for the givenfeature. -
[:so, path], wherepathis the path to the shared object file to be loaded for the givenfeature. -
nilif there is no suchfeatureandpath.
Examples:
$LOAD_PATH.resolve_feature_path('timeout') # => [:rb, "/snap/ruby/317/lib/ruby/3.2.0/timeout.rb"] $LOAD_PATH.resolve_feature_path('date_core') # => [:so, "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/date_core.so"] $LOAD_PATH.resolve_feature_path('foo') # => nil
Aliased as $: and $-I.
$LOADED_FEATURES¶ ↑
Contains an array of the paths to the loaded files:
$LOADED_FEATURES.take(10) # => ["enumerator.so", "thread.rb", "fiber.so", "rational.so", "complex.so", "ruby2_keywords.rb", "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so", "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so", "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/rbconfig.rb", "/snap/ruby/317/lib/ruby/3.2.0/rubygems/compatibility.rb"]
Aliased as $".
Debugging¶ ↑
$FILENAME¶ ↑
The value returned by method ARGF.filename.
$DEBUG¶ ↑
Initially true if {command-line option -d} or {--debug} is given, otherwise initially false; may be set to either value in the running program.
When true, prints each raised exception to $stderr.
Aliased as $-d.
$VERBOSE¶ ↑
Initially true if {command-line option -v} or {-w} is given, otherwise initially false; may be set to either value, or to nil, in the running program.
When true, enables Ruby warnings.
When nil, disables warnings, including those from Kernel#warn.
Aliased as $-v and $-w.
Other Variables¶ ↑
$-F¶ ↑
The default field separator in String#split; must be a String or a Regexp, and can be set with {command-line option -F}.
Setting to non-nil value by other than the command-line option is deprecated.
Aliased as $;.
$-a¶ ↑
Whether {command-line option -a} was given; read-only.
$-i¶ ↑
Contains the extension given with {command-line option -i}, or nil if none.
An alias of ARGF.inplace_mode.
$-l¶ ↑
Whether {command-line option -l} was set; read-only.
$-p¶ ↑
Whether {command-line option -p} was given; read-only.
$F¶ ↑
If the {command-line option -a} is given, the array obtained by splitting $_ by $-F is assigned at the start of each -l/-p loop.
Deprecated¶ ↑
$=¶ ↑
$,¶ ↑
Pre-Defined Global Constants¶ ↑
Summary¶ ↑
Streams¶ ↑
| Constant | Contains |
|---|---|
| ‘STDIN` | Standard input stream. |
| ‘STDOUT` | Standard output stream. |
| ‘STDERR` | Standard error stream. |
Environment¶ ↑
| Constant | Contains |
|---|---|
| ‘ENV` | Hash of current environment variable names and values. |
| ‘ARGF` | String concatenation of files given on the command line, or ‘$stdin` if none. |
| ‘ARGV` | Array of the given command-line arguments. |
| ‘TOPLEVEL_BINDING` | Binding of the top level scope. |
| ‘RUBY_VERSION` | String Ruby version. |
| ‘RUBY_RELEASE_DATE` | String Ruby release date. |
| ‘RUBY_PLATFORM` | String Ruby platform. |
| ‘RUBY_PATCH_LEVEL` | String Ruby patch level. |
| ‘RUBY_REVISION` | String Ruby revision. |
| ‘RUBY_COPYRIGHT` | String Ruby copyright. |
| ‘RUBY_ENGINE` | String Ruby engine. |
| ‘RUBY_ENGINE_VERSION` | String Ruby engine version. |
| ‘RUBY_DESCRIPTION` | String Ruby description. |
Embedded Data¶ ↑
| Constant | Contains |
|---|---|
| ‘DATA` | File containing embedded data (lines following ‘__END__`, if any). |
Streams¶ ↑
STDIN¶ ↑
The standard input stream (the default value for $stdin):
STDIN # => #<IO:<STDIN>>
STDOUT¶ ↑
The standard output stream (the default value for $stdout):
STDOUT # => #<IO:<STDOUT>>
STDERR¶ ↑
The standard error stream (the default value for $stderr):
STDERR # => #<IO:<STDERR>>
Environment¶ ↑
ENV¶ ↑
A hash of the contains current environment variables names and values:
ENV.take(5) # => [["COLORTERM", "truecolor"], ["DBUS_SESSION_BUS_ADDRESS", "unix:path=/run/user/1000/bus"], ["DESKTOP_SESSION", "ubuntu"], ["DISPLAY", ":0"], ["GDMSESSION", "ubuntu"]]
ARGF¶ ↑
The virtual concatenation of the files given on the command line, or from $stdin if no files were given, "-" is given, or after all files have been read.
ARGV¶ ↑
An array of the given command-line arguments.
TOPLEVEL_BINDING¶ ↑
The Binding of the top level scope:
TOPLEVEL_BINDING # => #<Binding:0x00007f58da0da7c0>
RUBY_VERSION¶ ↑
The Ruby version:
RUBY_VERSION # => "3.2.2"
RUBY_RELEASE_DATE¶ ↑
The release date string:
RUBY_RELEASE_DATE # => "2023-03-30"
RUBY_PLATFORM¶ ↑
The platform identifier:
RUBY_PLATFORM # => "x86_64-linux"
RUBY_PATCHLEVEL¶ ↑
The integer patch level for this Ruby:
RUBY_PATCHLEVEL # => 53
For a development build the patch level will be -1.
RUBY_REVISION¶ ↑
The git commit hash for this Ruby:
RUBY_REVISION # => "e51014f9c05aa65cbf203442d37fef7c12390015"
RUBY_COPYRIGHT¶ ↑
The copyright string:
RUBY_COPYRIGHT # => "ruby - Copyright (C) 1993-2023 Yukihiro Matsumoto"
RUBY_ENGINE¶ ↑
The name of the Ruby implementation:
RUBY_ENGINE # => "ruby"
RUBY_ENGINE_VERSION¶ ↑
The version of the Ruby implementation:
RUBY_ENGINE_VERSION # => "3.2.2"
RUBY_DESCRIPTION¶ ↑
The description of the Ruby implementation:
RUBY_DESCRIPTION # => "ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]"
Embedded Data¶ ↑
DATA¶ ↑
Defined if and only if the program has this line:
__END__
When defined, DATA is a File object containing the lines following the __END__, positioned at the first of those lines:
p DATA DATA.each_line { |line| p line } __END__
Output:
#<File:t.rb> "Foo\n" "Bar\n" "Baz\n"