class ConfigPlus::Config

Configuration of ConfigPlus

Public Class Methods

default_properties() click to toggle source
# File lib/config_plus/config.rb, line 4
def self.default_properties
  {
    config_method: :config,
    extension: nil,
    namespace: nil,
    node_model: Node,
    root_dir: nil,
    source: nil,
    loader_logic: :default,
  }
end
new() click to toggle source
# File lib/config_plus/config.rb, line 16
def initialize
  props = self.class.default_properties.each do |k, v|
    instance_variable_set("@#{k}", v)
  end

  setup_attrs(props.keys)
end

Public Instance Methods

has_property?(name) click to toggle source
# File lib/config_plus/config.rb, line 44
def has_property?(name)
  instance_variable_defined?("@#{name}")
end
loader() click to toggle source

returns a new loader instance

# File lib/config_plus/config.rb, line 25
def loader
  Loader.new(self)
end
loader_logic() click to toggle source

returns loader class specified by loader_logic property

# File lib/config_plus/config.rb, line 30
def loader_logic
  return @loader_logic if @loader_logic.is_a?(Class)

  name = ::ConfigPlus::Helper.classify(@loader_logic.to_s)
  name = "#{name}LoaderLogic"
  raise "Unknown loader logic named `#{name}'" unless
    ::ConfigPlus::const_defined?(name)
  ::ConfigPlus::const_get(name)
end
property_set(name, value) click to toggle source
# File lib/config_plus/config.rb, line 48
def property_set(name, value)
  instance_variable_set("@#{name}", value)
end
version() click to toggle source
# File lib/config_plus/config.rb, line 40
def version
  VERSION
end

Private Instance Methods

setup_attrs(attr_names) click to toggle source
# File lib/config_plus/config.rb, line 54
def setup_attrs(attr_names)
  singleton_class.instance_eval do
    attr_writer *attr_names
    attr_reader *(attr_names - instance_methods)
  end
end