class RKit::Core::Configurer
Attributes
_aliases[RW]
_base[RW]
_config[RW]
_presets[RW]
Public Class Methods
new(base, config = {})
click to toggle source
# File lib/r_kit/core/configurer.rb, line 4 def initialize base, config = {} @_base = base @_config = config @_presets = Hash.new{ |hash, key| hash[key] = self.class.new(_base) } @_aliases = [] end
Public Instance Methods
alias(*name, old_name)
click to toggle source
# File lib/r_kit/core/configurer.rb, line 34 def alias *name, old_name new_name = name.pop config = name.reduce(_config){ |config, nested| config = config[nested] } config[new_name] = config[old_name] if config[new_name].blank? end
alias_config(*name, old_name)
click to toggle source
# File lib/r_kit/core/configurer.rb, line 30 def alias_config *name, old_name _aliases << [name, old_name] end
config(*name, default)
click to toggle source
# File lib/r_kit/core/configurer.rb, line 21 def config *name, default _config.deep_merge! [*name, default].reverse.reduce{ |nested, key| Hash[key, nested] } end
fingerprint()
click to toggle source
# File lib/r_kit/core/configurer.rb, line 66 def fingerprint _config.sort.join end
inspect()
click to toggle source
# File lib/r_kit/core/configurer.rb, line 62 def inspect _config.inspect end
load!(config)
click to toggle source
# File lib/r_kit/core/configurer.rb, line 54 def load! config load_preset! config.delete(:preset) load_config! config load_alias! load_public_accessor! end
load_alias!()
click to toggle source
# File lib/r_kit/core/configurer.rb, line 41 def load_alias! _aliases.each do |(name, old_name)| self.alias *name, old_name end end
load_config!(config_options)
click to toggle source
# File lib/r_kit/core/configurer.rb, line 25 def load_config! config_options _config.deep_merge! config_options end
load_preset!(name)
click to toggle source
# File lib/r_kit/core/configurer.rb, line 16 def load_preset! name _config.deep_merge! _presets[name]._config end
load_public_accessor!()
click to toggle source
# File lib/r_kit/core/configurer.rb, line 48 def load_public_accessor! _base.const_set :CONFIG, OpenStruct.new(_config) _base.define_singleton_method('config'){ self::CONFIG } end
preset(name, config)
click to toggle source
# File lib/r_kit/core/configurer.rb, line 12 def preset name, config _presets[name] = self.class.new(_base, config) end