EX-決済API と Ruby 🍣 時々 Rails

EX-Omise JapanのLead Developerです。

組み込み変数/定数

組み込み変数(Ruby Predefined Variables)

Rubyでの組み込み変数は Kernelの特殊変数 へまとめられています。 Kernel.global_variables で出力されるものが組み込み変数名称一覧です。

識別子 初期値 概要 スコープ
$_ String, nil 最後に Kernel.#gets または Kernel.#readline で読み込んだ文字列です。 EOF に達した場合には、 nil になります。 (覚え方: Perlと同じ)
Kernel.#print のような Perl 由来の幾つかのメソッドは、引数を省略すると代わりに $_ を利用します。
ローカルスコープかつスレッドローカル
$~ MatchData, nil 現在のスコープで最後に成功したマッチに関する MatchDataオブジェクトです。 Regexp.last_match の別名です。このデータから n 番目のマッチ ($n) を取り出すためには $~[n] を使います。 ローカルスコープかつスレッドローカル
$;
$-F
Regexp, String, nil String#split で引数を省略した場合の区切り文字です。 グローバルスコープ
$@ [String], nil 最後に例外が発生した時のバックトレースを表す配列です。 Kernel.#raise によって設定されます。 スレッドローカル
$! Exception, nil 最後に例外が発生したときの Exception オブジェクトです。 該当する例外がないときは nil です。Kernel.#raise によって設定されます。 スレッドローカル、読み取り専用
$SAFE Fixnum, 0 カレントスレッドのセーフレベルを表す整数です。セーフレベルについては セキュリティモデル を参照してください。Thread.current.safe_level と同じです。 スレッドローカル
$& String, nil 現在のスコープで最後に成功した正規表現のパターンマッチでマッチした文字列です。 最後のマッチが失敗していた場合には nil となります。Regexp.last_match[0] と同じです。 ローカルスコープかつスレッドローカル、読み取り専用
$` String, nil 現在のスコープで最後に成功した正規表現のパターンマッチでマッチした 部分より前の文字列です。 最後のマッチが失敗していた場合には nil となります。Regexp.last_match.pre_match と同じです。 ローカルスコープかつスレッドローカル、読み取り専用
$‘ String, nil 現在のスコープで最後に成功した正規表現のパターンマッチでマッチした 部分より後ろの文字列です。 最後のマッチが失敗していた場合には nil となります。Regexp.last_match.post_match と同じです。 ローカルスコープかつスレッドローカル、読み取り専用
$+ String, nil 現在のスコープで最後に成功した正規表現のパターンマッチで マッチした中で最後の括弧に対応する部分文字列です。最後のマッチが失敗していた場合には nil。 ローカルスコープかつスレッドローカル
$= bool, false 過去との互換性のために残されていますが、もはや何の意味もありません。値は常に false です。代入しても無視されます。 グローバルスコープ
$KCODE
$-K
nil この特殊変数は何の影響も持たなくなりました。値を代入しても無視され、参照すると常に nil です。
$, String, nil デフォルトの出力フィールド区切り文字列です。 Array#join で引数を省略した場合と、 Kernel.#print の各引数の間で出力されます。 グローバルスコープ
$/
$-0
String, nil 入力レコード区切りを表す文字列です。 awk の RS 変数のように働きます。Kernel.#gets のような「行」単位の読み込みメソッドが「行」の区切りとして使用します。 Rubyがコマンドオプション -0 付きで起動されたときには -0 で指定された値が規定値となります。そうでないとき、規定値は “\n” です。この変数に nil を設定すると読み込みメソッドはファイル全体を一度に読み込みます。 空文字列 “” を設定するとパラグラフモードとみなされ、 2 つ以上連続した改行が「行」の区切りになります。$/ には正規表現は使えません。 グローバルスコープ
$\ String, nil 出力レコード区切りを表す文字列です。 Kernel.#print が最後にこの文字列を出力します。 グローバルスコープ
$stdin object 標準入力です。 グローバルスコープ
$>
$stdout
object, Object::STDOUT 標準出力です。 グローバルスコープ
$stderr object 標準エラー出力です。 グローバルスコープ
$< IO すべての引数または標準入力で構成される仮想ファイルです。 定数 Object::ARGF の別名です。 グローバルスコープ、読み取り専用
$. Fixnum, 0 いずれかの IO オブジェクトが最後に読んだ行の行番号です。 Object::ARGF などの IO 互換のオブジェクトも $. を更新します。 グローバルスコープ
$FILENAME String 仮想ファイル Object::ARGF で現在読み込み中のファイル名です。 ARGF.class#filename と同じです。 グローバルスコープ
$-i bool in-place 置換モードで用いられます。 グローバルスコープ
$* [String] Rubyスクリプトに与えられた引数を表す配列です。 組み込み定数 Object::ARGV の別名です。 グローバルスコープ
$:
$-I
$LOAD_PATH
[String] Rubyライブラリをロードするときの検索パスです。Kernel.#load や Kernel.#require がファイルをロードする時に検索するディレクトリのリストを含む配列です。 グローバルスコープ
$\ String, nil 出力レコード区切りを表す文字列です。 Kernel.#print が最後にこの文字列を出力します。 グローバルスコープ
$“
$LOADED_FEATURES
[String] Kernel.#require でロードされたファイル名を含む配列です。Kernel.#require で同じファイルを 複数回ロードしないようにするためのロックとして使われます。 グローバルスコープ
$? Process::Status, nil このスレッドで最後に終了した子プロセスのステータスです。Process::Status オブジェクトが入っています。 子プロセスの終了時ステータスは Process::Status#exitstatus で得られます。 スレッドローカル、読み取り専用
$$ Fixnum 現在実行中の Ruby プロセスのプロセス ID です。 Process.#pid と同じです。 グローバルスコープ
$VERBOSE
$-v
$-w
bool, nil 冗長メッセージフラグです。Rubyインタプリタへの コマンドラインオプション -v でセットされます。警告レベルは三段階あり、それぞれ以下の通りです。
nil : 警告を出力しない
false : 重要な警告のみ出力 (デフォルト)
true : すべての警告を出力する
$VERBOSEはグローバルスコープ
$-W 0, 1, 2 コマンドラインオプション -W を指定したとき、 そのコマンドライン引数の値が設定されます。 グローバルスコープ、読み取り専用
$DEBUG
$-d
bool この値が真のときはインタプリタがデバッグモードになります。 グローバルスコープ
$0
$PROGRAM_NAME
String 現在実行中の Ruby スクリプトの名前を表す文字列です。 グローバルスコープ
$1
$2
$3
$4…
String, nil 最後に成功したパターンマッチで n 番目の括弧にマッチした値が格納されます。 該当する括弧がなければ nil が入っています。(覚え方: \数字 のようなもの)番号 n はいくらでも大きな正整数を利用できます。 ローカルスコープかつスレッドローカル、読み取り専用
$-p bool コマンドラインオプション -p を指定したとき true に設定されます。 この変数には代入できません。 グローバルスコープ、読み取り専用
$-l bool コマンドラインオプション -l を指定したとき true に設定されます。 この変数には代入できません。 グローバルスコープ、読み取り専用
$-a bool 自動 split モードを表すフラグです。コマンドラインオプション -a を使ったとき true に設定されます。 この変数には代入できません。 グローバルスコープ、読み取り専用

組み込み定数(Ruby Predefined Constants)

定数 概要
TRUE true と同義
FALSE false と同義
NIL nil と同義
ARGF $< と同義。引数(なければ標準入力)で構成される仮想ファイル。
ARGV $* と同義。Rubyスクリプトに与えられた引数。
DATA スクリプトの __END__ (スクリプトの終り) 以降をアクセスする File オブジェクト。
ENV 環境変数を表す(疑似)連想配列。
RUBY_PLATFORM Rubyインタプリタのプラットフォームを示す文字列。
RUBY_RELEASE_DATE Rubyインタプリタのリリース日を示す文字列。
RUBY_VERSION Rubyインタプリタのバージョンを示す文字列。
STDERR 標準エラー出力。 $stderr のデフォルト値。
STDIN 標準入力。 $stdin のデフォルト値。
STDOUT 標準出力。 $stdout のデフォルト値。
TOPLEVEL_BINDING トップレベルでのバインディングオブジェクト。