class EnvSetting
Constants
- VERSION
Public Class Methods
[](var)
click to toggle source
# File lib/env_setting.rb, line 94 def self.[](var) self.get_value(var) end
add_class(klass, &block)
click to toggle source
# File lib/env_setting.rb, line 38 def self.add_class(klass, &block) Classes.send :define_singleton_method, klass.to_s, &block end
config(&block)
click to toggle source
# File lib/env_setting.rb, line 6 def self.config(&block) class_eval(&block) end
default_class(*args)
click to toggle source
# File lib/env_setting.rb, line 42 def self.default_class(*args) if args.any? Classes.default_class = args.first else Classes.default_class end end
default_falsey_regex(regex = nil)
click to toggle source
# File lib/env_setting.rb, line 50 def self.default_falsey_regex(regex = nil) if regex Classes.default_falsey_regex = regex else Classes.default_falsey_regex end end
get_value(var)
click to toggle source
# File lib/env_setting.rb, line 87 def self.get_value(var) var = var.to_s raise KeyError.new("#{var} is not configured in the ENV") unless vars.has_key?(var) Classes.cast ENV[var], vars[var] end
instance()
click to toggle source
# File lib/env_setting.rb, line 66 def self.instance @@instance ||= new end
keys()
click to toggle source
# File lib/env_setting.rb, line 79 def self.keys vars.keys end
method_missing(method, *args, &block)
click to toggle source
# File lib/env_setting.rb, line 62 def self.method_missing(method, *args, &block) instance.send(method, *args, &block) end
raise_formatted_error(var, description)
click to toggle source
# File lib/env_setting.rb, line 34 def self.raise_formatted_error(var, description) raise KeyError.new Formatter.formatted_error(var, description) end
respond_to?(method_sym)
click to toggle source
Calls superclass method
# File lib/env_setting.rb, line 58 def self.respond_to?(method_sym) instance.respond_to?(method_sym) || super end
set_instance(obj)
click to toggle source
# File lib/env_setting.rb, line 70 def self.set_instance(obj) raise ArgumentError.new "Object must be a derivative of EnvSetting" unless obj.is_a?(EnvSetting) @@instance = obj end
use(var, *args)
click to toggle source
# File lib/env_setting.rb, line 10 def self.use(var, *args) var = var.to_s description = args.first.is_a?(String) && args.shift description ||= "" 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 method_name = var.downcase instance.define_singleton_method(method_name) do cache[method_name] ||= self.class.get_value(var) end method_name_bool = "#{method_name}?" instance.define_singleton_method(method_name_bool) do cache[method_name_bool] ||= !!(self.send(method_name)) end end
values()
click to toggle source
# File lib/env_setting.rb, line 83 def self.values keys.map { |k| self[k] } end
vars()
click to toggle source
# File lib/env_setting.rb, line 75 def self.vars @@vars ||= {} end
Public Instance Methods
cache()
click to toggle source
# File lib/env_setting.rb, line 98 def cache @cache ||= {} end
clear_cache!()
click to toggle source
# File lib/env_setting.rb, line 102 def clear_cache! @cache = nil end
method_missing(method, *args, &block)
click to toggle source
# File lib/env_setting.rb, line 110 def method_missing(method, *args, &block) ENV.send(method, *args, &block) end
respond_to?(method_sym)
click to toggle source
Calls superclass method
# File lib/env_setting.rb, line 106 def respond_to?(method_sym) ENV.respond_to?(method_sym) || super end