class ENV_BANG
Constants
- VERSION
Public Class Methods
[](var)
click to toggle source
# File lib/env_bang.rb, line 44 def [](var) var = var.to_s raise KeyError.new("ENV_BANG is not configured to use var #{var}") unless vars.has_key?(var) Classes.cast ENV[var], vars[var] end
add_class(klass, &block)
click to toggle source
# File lib/env_bang.rb, line 55 def add_class(klass, &block) Classes.send :define_singleton_method, klass.to_s, &block end
config(&block)
click to toggle source
# File lib/env_bang.rb, line 7 def config(&block) instance_eval(&block) end
default_class(*args)
click to toggle source
# File lib/env_bang.rb, line 59 def default_class(*args) if args.any? Classes.default_class = args.first else Classes.default_class end end
keys()
click to toggle source
# File lib/env_bang.rb, line 36 def keys vars.keys end
method_missing(method, *args, &block)
click to toggle source
# File lib/env_bang.rb, line 51 def method_missing(method, *args, &block) ENV.send(method, *args, &block) end
raise_formatted_error(var, description)
click to toggle source
# File lib/env_bang.rb, line 26 def raise_formatted_error(var, description) e = KeyError.new(Formatter.formatted_error(var, description)) e.set_backtrace(caller[3..-1]) raise e end
use(var, *args)
click to toggle source
# File lib/env_bang.rb, line 11 def use(var, *args) var = var.to_s description = args.first.is_a?(String) ? args.shift : nil options = args.last.is_a?(Hash) ? args.pop : {} unless ENV.has_key?(var) ENV[var] = options.fetch(:default) { raise_formatted_error(var, description) }.to_s end vars[var] = options # Make sure reading/coercing the value works. If it's going to raise an error, raise it now. self[var] end
values()
click to toggle source
# File lib/env_bang.rb, line 40 def values keys.map { |k| self[k] } end
vars()
click to toggle source
# File lib/env_bang.rb, line 32 def vars @vars ||= {} end