extend: Enumerable
環境変数を表すオブジェクト。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 で得られる文字列は Object#freeze されています。
例:
p ENV['TERM'].frozen? # => true
Windows では環境変数は大文字、小文字を区別しません。(cygwin を除く)
例:
ENV['OS'] # => Windows_NT ENV['os'] # => Windows_NT
self[key] -> String
[permalink][rdoc]key に対応する環境変数の値を返します。該当する環境変数が存在しない時には nil を返します。
ENV['PATH'] # => "/usr/local/bin:/usr/bin:/bin:/usr/X11/bin"
ENV['NON_EXIST_KEY'] # => nil
self[key] = value
[permalink][rdoc]store(key, value) -> String
key に対応する環境変数の値を value にします。 value が nil の時、key に対応する環境変数を取り除きます。
ENV['NEW_KEY'] = 'some_value'
ENV['NEW_KEY'] # => 'some_value'
ENV.store('NEW_KEY', nil) # => nil
ENV.has_key?('NEW_KEY') # => false
assoc(key) -> Array | nil
[permalink][rdoc]自身が与えられたキーに対応する要素を持つとき、見つかった要素のキーと値のペアを配列として返します。
[SEE_ALSO] Hash#assoc
clear -> self
[permalink][rdoc]環境変数をすべてクリアします。self を返します。
ENV.clear
p ENV # => {}
delete(key) -> String | nil
[permalink][rdoc]delete(key) {|key| ... } -> String | nil
key に対応する環境変数を取り除きます。取り除かれた環境変数の値を返しますが、key に対応する環境変数が存在しない時には nil を返します。
ブロックが与えられた時には key にマッチするものがなかった時に評価されます。
ENV['TEST'] = 'foo'
ENV.delete('TEST') # => "foo"
ENV.delete('TEST') { |key| puts "#{key} is not found in ENV" } # TEST is not found in ENV
delete_if {|key, value| ... } -> ENV
[permalink][rdoc]reject! {|key, value| ... } -> ENV | nil
delete_if -> Enumerator
reject! -> Enumerator
key と value を引数としてブロックを評価した値が真である時、環境変数を削除します。
reject! は要素に変化がなければ nil を返します。
ENV['FOO'] = 'bar'
ENV.delete_if { |key, value| key == 'FOO' && value == 'bar' } # => ENV
ENV.reject! { |key, value| key == 'FOO' && value == 'bar' } # => nil
each -> Enumerator
[permalink][rdoc]each_pair -> Enumerator
each {|key, value| ... } -> self
each_pair {|key, value| ... } -> self
key と value を引数としてブロックを評価します。
ENV['FOO'] = 'bar'
ENV.each do |key, value|
p "value is #{value}" if key == 'FOO' # => "value is bar"
end
# => ENV
each_key -> Enumerator
[permalink][rdoc]each_key {|key| ... } -> self
key を引数としてブロックを評価します。
ENV['FOO'] = 'bar'
ENV.each_key do |key|
p "key #{key} detected" if key == 'FOO'
end
# "key FOO detected"
each_value -> Enumerator
[permalink][rdoc]each_value {|value| ... } -> self
value を引数としてブロックを評価します。
empty? -> bool
[permalink][rdoc]環境変数がひとつも定義されていない時真を返します。
fetch(key) -> String
[permalink][rdoc]fetch(key, default) -> String
fetch(key) {|key| ... } -> String
key に関連づけられた値を返します。該当するキーが登録されていない時には、引数 default が与えられていればその値を、ブロックが与えられていればそのブロックを評価した値を返します。そのいずれでもなければ例外が発生します。
has_key?(key) -> bool
[permalink][rdoc]include?(key) -> bool
key?(key) -> bool
member?(key) -> bool
key で指定される環境変数が存在する時、真を返します。
has_value?(val) -> bool
[permalink][rdoc]value?(val) -> bool
val を値として持つ環境変数が存在する時、真を返します。
key(val) -> String | nil
[permalink][rdoc]index(val) -> String | nil
val に対応するキーを返します。対応する要素が存在しない時には nil を返します。
ENV.index は obsolete です。使用すると警告メッセージが表示されます。 ENV.key を使用してください。
inspect -> String
[permalink][rdoc]ENV オブジェクトを文字列化します。 Hash#inspect と同じように動作します。
invert -> Hash
[permalink][rdoc]環境変数の値をキー、名前を値とした Hash を生成して返します。
keep_if {|key, value| ... } -> ENV
[permalink][rdoc]select! {|key, value| ... } -> ENV | nil
keep_if -> Enumerator
select! -> Enumerator
キーと値を引数としてブロックを評価した結果が真であるような要素を環境変数に残します。
keep_if は常に self を返します。 select! はオブジェクトが変更された場合に self を、されていない場合に nil を返します。
ブロックが省略された場合には Enumerator を返します。
[SEE_ALSO] ENV.delete_if,ENV.reject!, Hash#keep_if, Hash#select!,
keys -> [String]
[permalink][rdoc]全環境変数の名前の配列を返します。
length -> Integer
[permalink][rdoc]size -> Integer
環境変数の数を返します。
rassoc(value) -> Array | nil
[permalink][rdoc]自身が与えられた値に対応する要素を持つとき、見つかった要素のキーと値のペアを配列として返します。
[SEE_ALSO] Hash#rassoc
rehash -> nil
[permalink][rdoc]何もしません。nilを返します。
reject -> Enumerator
[permalink][rdoc]reject {|key, value| ... } -> Hash
環境変数のうち、ブロックを評価した値が真であるものをとり除きます。 Enumerable#reject と異なり Hash を返します。また、とり除いた結果は実際の環境変数に影響を与えません。
ENV['TEST'] = 'foo'
result = ENV.reject { |key, value| key == 'TEST' }
result['TEST'] # => nil
ENV['TEST'] # => "foo"
replace(hash) -> ENV
[permalink][rdoc]環境変数を hash と同じ内容に変更します。 self を返します。
select -> Enumerator
[permalink][rdoc]select {|key, value| ... } -> Hash
環境変数名と値についてブロックを評価し、真を返したものを集めたハッシュを返します。
shift -> [String, String]
[permalink][rdoc]環境変数を一つ取り除いて、それを名前と値の組の配列で返します。環境変数が一つも設定されていなければ nil を返します。
to_a -> [[String, String]]
[permalink][rdoc]環境変数から [変数名, 値] となる 2 要素の配列の配列を生成します。
to_h -> Hash
[permalink][rdoc]環境変数の名前をキーとし、対応する値をもつハッシュを返します。
to_hash -> Hash
[permalink][rdoc]環境変数の名前をキーとし、対応する値をもつハッシュを返します。
to_s -> String
[permalink][rdoc]環境変数を文字列化します。 Hash#to_s と同じように動作します。
update(other) -> ENV
[permalink][rdoc]ハッシュ other の内容を環境変数にマージします。重複するキーに対応する値は other の内容で上書きされます。
self を返します。
values -> [String]
[permalink][rdoc]環境変数の全値の配列を返します。
values_at(*key) -> [String]
[permalink][rdoc]引数で指定されたキー(環境変数名)に対応する値の配列を返します。存在しないキーに対しては nil が対応します。
例:
ENV.update({'FOO' => 'foo', 'BAR' => 'bar'}) p ENV.values_at(*%w(FOO BAR BAZ)) # => ["foo", "bar", nil]