module ENV
¶
ENV
is a hash-like accessor for environment variables.
Example¶
# Set env var PORT to a default if not already set
ENV["PORT"] ||= "5000"
# Later use that env var.
puts ENV["PORT"].to_i
Note
All keys and values are strings. You must take care to cast other types at runtime, e.g. integer port numbers.
Extended modules
Enumerable
Class methods¶
.[](key : String) : String
¶
(key : String) : String
Retrieves the value for environment variable named key as a String
.
Raises KeyError
if the named variable does not exist.
.[]=(key : String, value : String?)
¶
(key : String, value : String?)
Sets the value for environment variable named key as value.
Overwrites existing environment variable if already present.
Returns value if successful, otherwise raises an exception.
If value is nil
, the environment variable is deleted.
If key or value contains a null-byte an ArgumentError
is raised.
.[]?(key : String) : String?
¶
(key : String) : String?
Retrieves the value for environment variable named key as a String?
.
Returns nil
if the named variable does not exist.
.delete(key : String) : String?
¶
(key : String) : String?
Removes the environment variable named key. Returns the previous value if
the environment variable existed, otherwise returns nil
.
.each
¶
Iterates over all KEY=VALUE
pairs of environment variables, yielding both
the key and value.
ENV.each do |key, value|
puts "#{key} => #{value}"
end
.fetch(key, default)
¶
(key, default)
Retrieves a value corresponding to the given key. Return the second argument's value if the key does not exist.
.fetch(key) : String
¶
(key) : String
Retrieves a value corresponding to the given key. Raises a KeyError
exception if the
key does not exist.
.fetch(key : String, &block : String -> String?)
¶
(key : String, &block : String -> String?)
Retrieves a value corresponding to a given key. Return the value of the block if the key does not exist.
.has_key?(key : String) : Bool
¶
(key : String) : Bool
Returns true
if the environment variable named key exists and false
if it doesn't.