組み込み定数

TRUE ((<obsolete>))

代表的な真の値。true と同じ。Ruby では偽でない値(false でも nil でもない値)は全て真とみなされます。 (obsoleteも参照してください。)

FALSE ((<obsolete>))

偽の値。false と同じ。 (obsoleteも参照してください。)

NIL ((<obsolete>))

nil と同じ。 (obsoleteも参照してください。)

STDIN

標準入力。$stdin のデフォルト値。

STDOUT

標準出力。$stdout のデフォルト値。

STDERR

標準エラー出力。$stderr のデフォルト値。

ENV

環境変数を表す(疑似)連想配列(詳細は ENV を参照)。この連想配 列の値を変更すると子プロセスの環境として引き継がれます。

ARGF

引数(なければ標準入力)で構成される仮想ファイル (詳細は ARGF を参照)。つまり getsARGF.gets と同 じ意味です。ARGF.file で現在読み込み中のファイルオブジェ クトが、ARGF.filename で現在読み込み中のファイル名が得 られます。

ARGV

Rubyスクリプトに与えられた引数。組み込み変数 $* の 別名。Ruby自身に対する引数は取り除かれています。

DATA

スクリプトの __END__ (スクリプトの終り) 以降をアクセスする File オブジェクト。

注意:

  • DATA.rewind で移動する読みとり位置は、__END__ 直後で はなく、スクリプトファイルの先頭です。
  • スクリプトが標準入力から読みこまれた場合は標準入力になります。
  • スクリプトがファイルや標準入力から読みこまれなかった場合や、 __END__ で終っていない場合には定義されません。
  • requireload で 読み込まれたファイルの中であってもそのファイル(__FILE__) ではなく実行されたファイル($0)を指します。
TOPLEVEL_BINDING

トップレベルでの Binding オブジェクト。

RUBY_VERSION

Ruby のバージョンを示す文字列。Ruby のバージョンは、 major.minor.teeny という形式です。それぞれの番号 は(今のところ)二桁以上にならないと約束されていますので、

if RUBY_VERSION >= '1.6.7'
  # バージョン 1.6.7 以降で有効な処理
else
  # それ以前のバージョンで有効な処理
end

とバージョンの違いによる処理の分岐を書くことができます。

version 1.8 までは、minor が奇数のバージョンは開発版、 minor が偶数のバージョンは安定版です。1.9.0 以降は、 teeny が 0 のバージョンが開発版となる予定です。

RUBY_RELEASE_DATE

Ruby のリリース日を示す文字列。

RUBY_PLATFORM

プラットフォームを示す文字列。

VERSION ((<obsolete>))
RELEASE_DATE ((<obsolete>))
PLATFORM ((<obsolete>))

これらは、上記の定数 RUBY_XXX の古い名前です。 obsoleteも参照してください。

ruby 1.9 feature: これらの定数は削除されました。

SCRIPT_LINES__

この定数は、デフォルトでは定義されていません。

この定数がハッシュとして定義された後に、ソースがコンパイルさ れると、そのソースファイル名をキーに、ソースを行毎に分割した配列を値 にしたハッシュ要素が設定されます。この定数はデバッガ(debug.rb) などで利用されています。

SCRIPT_LINES__ = {}
require 'English'
p SCRIPT_LINES__

# 注: 出力は加工してあります。
# => {"/usr/local/lib/ruby/1.6/English.rb"=>
      ["alias $ERROR_INFO              $!\n",
       "alias $ERROR_POSITION          $@\n",
       "alias $LOADED_FEATURES         $\"\n",
                :
                :
       "alias $POSTMATCH               $'\n",
       "alias $LAST_PAREN_MATCH        $+\n"]}

なお、$SAFEレベルが 0 でなければ有効にはなりませ ん。また、eval によるコンパイルは対象にはなりませ ん。



rubyist ML