class ConfigModule::ConfigHelper
Attributes
config_file[RW]
namespaces[W]
raw_config[R]
Public Instance Methods
config()
click to toggle source
# File lib/config_module/config_helper.rb, line 9 def config @config ||= ConfigOption.wrap load_config end
field_lookup_handler(name, _source, *_args, &_block)
click to toggle source
# File lib/config_module/config_helper.rb, line 28 def field_lookup_handler name, _source, *_args, &_block config[name] end
load_config()
click to toggle source
# File lib/config_module/config_helper.rb, line 32 def load_config raise ConfigModule::ConfigFileNotSpecified, config_file unless config_file raise ConfigModule::ConfigFileNotFound, config_file unless File.exist? config_file yaml_load load_namespaces_from raw_config end
load_namespaces_from(tree)
click to toggle source
# File lib/config_module/config_helper.rb, line 40 def load_namespaces_from tree namespaces.inject(ConfigOption.wrap(tree)) do |subtree, ns| if ConfigOption === subtree && ns.respond_to?(:to_sym) && subtree.has_key?(ns) ConfigOption.wrap subtree[ns] else raise( InvalidNamespaceError.new(ns, subtree, caller), "No subkey with name: #{ns.inspect}", caller(6) ) end end rescue TypeError raise( InvalidNamespaceError.new(namespaces.first, self, caller), "Namespace must be a string or symbol, instead it was: #{namespaces.first.class}", caller(6) ) end
method_missing_handler(name, source, *args, &block)
click to toggle source
# File lib/config_module/config_helper.rb, line 13 def method_missing_handler name, source, *args, &block ConfigOption.wrap config.send(name, *args, &block) rescue NoMethodError => error raise unless error.name == name raise( ConfigOption::NotFoundError.new(name, self, error), error.message, source ) end
namespaces()
click to toggle source
# File lib/config_module/config_helper.rb, line 58 def namespaces @namespaces ||= [] end
respond_to_missing_handler(name, include_all)
click to toggle source
# File lib/config_module/config_helper.rb, line 24 def respond_to_missing_handler name, include_all config.send(:respond_to_missing?, name, include_all) end
Private Instance Methods
yaml_load()
click to toggle source
# File lib/config_module/config_helper.rb, line 64 def yaml_load @raw_config = if YAML::VERSION >= "3.0.2" YAML.load_file config_file, fallback: {} elsif YAML::VERSION >= "2.1.0" YAML.load_file config_file, {} else YAML.load_file(config_file) || {} # ambiguous with false or nil value end end