気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Ruby Gold対策(実行環境)

組み込み定数

ruby標準で用意されている定数

組み込み定数
STDIN 標準入力
STDOUT 標準出力
STDERR 標準エラー出力
ENV 環境変数
ARGF 仮想ファイル
ARGV Rubyスクリプトに与えられた引数
DATA スクリプト内の__END__以降に記述された内容にアクセスするFileオブジェクト

ENVの内容を参照する

ENV["RBENV_VERSION"]
=>"2.0.0-p247"
ENV["USER"]
=> "tamata"
ENV["SHELL"]
=> "/bin/zsh"
ENV["PATH"]
=> "/Users/tamata/.rvm/bin ・・・・"

使い方は以下を参考に qiita.com

主なコマンドラインオプション

rubyインタプリタ実行時に設定するオプション

コマンドラインオプション 指定時の動作
-h ヘルプを表示
-v バージョンを表示
-c 指定されたファイルの文法チェック。実行なし
-e コマンドラインからのスクリプト指定
-w 冗長モードでの実行。普段出力しないワーニングが出力
-W0,-W1,-W2,-W 出力範囲を指定した冗長モードでの実行
-I $LOAD_PATHに、指定された文字列を追加する
-r スクリプト実行前に指定されたファイルを実行
-d デバッグモードで実行する

冗長モード

オプション 指定時の動作 $VERBOSE(冗長メッセージフラグ)
-W0 警告を出力しない nil
-W1 重要な警告のみ出力(デフォルト) false
-W2 or -W or (-v) すべての警告を出力する true

参考URL:Rubyの起動 (Ruby 1.9.3)

warn

$VERBOSEがnil以外の場合にSTDERR(標準エラー出力)へメッセージを出力する。

warn "caution!" #=> caution!
$VERBOSE = nil
warn "caution!" # 何もしない

参考URL: module function Kernel.#warn (Ruby 2.0.0)

requireとload

requireとloadとの違い

条件 require load
同ファイルロード 一度しかロードしない 何度でも読み込む
ファイル拡張子の補完 自動補完 補完しない

類似メソッドでautoloadも存在

autoload(const_name, 'ファイル名') # まだロードされていない。
puts const_name # この時点でロードされる

const_nameが参照された時点で指定ファイルを用いて読み込む。
const_nameには定数、シンボルが使用できる。

autoloadについては以下がわかりやすい
3/3 require, require_relative, load, autoloadの違い [Ruby] All About

指定されたファイルを探すルール(相対パス指定の場合)

下記の順序でファイルを読み込みにいく
1. ruby実行オプション -Iで指定したフォルダ
2. 組み込み変数$LOAD_PATHに格納されたパス順に読み込む
→上記変数の一般的な設定値:Rubyインストールフォルダ→ruby実行フォルダ
3. 環境変数RUBYLIBにしてしたパス