ENV

環境変数を表すオブジェクト。Hash と同様のインターフェースを持ち ます。ただし、Hash と異なり、ENV のキーと値には文字列しか とることができません。

ENV で得られる文字列は ENV['PATH'] を除いて汚染されていま す。(オブジェクトの汚染に関してはセキュリティモデルを参照のこと) ENV['PATH'] はその要素が誰でも書き込み可能なディレクトリを含ん でいる場合に限り汚染されます。

p ENV['TERM'].tainted?
# => true
p path = ENV['PATH']
# => "/usr/local/bin:/usr/bin:/bin:/usr/X11/bin"
p path.tainted?
# => false

インクルードされているモジュール:

メソッド:

ENV[key]

key に対応する環境変数の値を返します。該当する環境変数が存在 しない時には nil を返します。

ENV[key]=value
ENV.store(key, value)

key に対応する環境変数の値を value にします。 valuenil の時、key に対応する環境変数を取り 除きます。

ENV.delete(key)

key に対応する環境変数を取り除きます。取り除かれた環境変数の 値を返 しますが、key に対応する環境変数が存在しない時には nil を返します。

ブロックが与えられた時には key にマッチするものがなかった時 に評価されます。

ENV.reject{|key, value| ... }

ブロックを評価した値が真である時、要素を削除します。 Enumerable#reject と異なり Hash を返 します。

ENV.delete_if {|key, value| ... }
ENV.reject!{|key, value| ... }

keyvalue を引数としてブロックを評価した値が真であ る時、環境変数を削除します。

reject! は要素に変化がなければ nil を返します。

ENV.each {|key, value| ... }
ENV.each_pair {|key, value| ... }

keyvalue を引数としてブロックを評価します。

ENV.each_key {|key| ... }

key を引数としてブロックを評価します。

ENV.each_value {|value| ... }

value を引数としてブロックを評価します。

ENV.empty?

環境変数がひとつも定義されていない時真を返します。

ENV.fetch(key,[default])
ENV.fetch(key) {|key| ... }

key に関連づけられた値を返します。該当するキーが登録されてい ない時には、引数 default が与えられていればその値を、ブロッ クが与えられていればそのブロックを評価した値を返します。そのいずれ でもなければ例外 IndexError が発生します。

ENV.has_key?(val)
ENV.include?(val)
ENV.key?(val)
ENV.member?(val)

val で指定される環境変数が存在する時真を返します。

ENV.has_value?(value)
ENV.value?(value)

value を値として持つ環境変数が存在する時真を返します。

ENV.index(val)

val に対応するキーを返します。対応する要素が存在しない時には nil を返します。

ENV.indexes(key_1, ... , key_n)
ENV.indices(key_1, ... , key_n)

引数で指定された名前の環境変数の値の配列を返します。

ruby 1.7 feature: このメソッドは version 1.7 では、obsolete です。 使用すると警告メッセージが表示されます。 代わりに ENV.select を使用します。

ENV.keys

全環境変数の名前の配列を返します。

ENV.length
ENV.size

環境変数の数を返します。

ENV.rehash

何もしません。nilを返します。

ENV.select(key_1, ..., key_n)
ENV.select {|key, value| ... }

ruby 1.7 feature

最初の形式では、引数で指定されたキー(環境変数名)に対応する値の配列 を返します。存在しないキー(環境変数)に対しては nil が対応します。 ENV.indexesENV.indices と同じです。

ブロック付きでイテレータとして呼び出した場合は Enumerable#select と同じです。つまり、ブロッ クにキーと値の組を順に渡し、ブロックが真を返した要素(キーと値の配 列) の配列を返します。

ENV.to_a

環境変数から [key,value] なる 2 要素の配列の配列を生成します。

ENV.to_hash

環境変数の名前と値のハッシュを返します。

ENV.values

環境変数の全値の配列を返します。