class NonConfig::Base

Base class you need to inherit

Constants

ENVIRONMENTS

Public Class Methods

[](key) click to toggle source

Tries to find object.

Unlike Base.key it won’t raise exception on not found

@return nil if not found

# File lib/non_config/base.rb, line 75
def self.[](key)
  default = nil
  @@files.reverse_each do |_name, file|
    default = file[key] if default.nil?

    return file[@@env][key] if file[@@env] && file[@@env][key]
    return file[key] if !@@env && file[key]
  end

  default
end
[]=(key, value) click to toggle source

alias for set key, value

# File lib/non_config/base.rb, line 64
def self.[]=(key, value)
  set(key, value)
end
config_file(file_alias = nil) click to toggle source
# File lib/non_config/base.rb, line 34
def self.config_file(file_alias = nil)
  file_alias = @@files.to_a.last && @@files.to_a.last[0] unless file_alias
  fail FileNotRegistered unless file_alias && @@files.key?(file_alias)

  @@files[file_alias]
end
env(env) click to toggle source

sets environment. See Base::ENVIRONMENTS

# File lib/non_config/base.rb, line 42
def self.env(env)
  return @@env = nil unless env

  env = env.to_sym
  fail UnsupportedEnvironment unless ENVIRONMENTS.include? env

  @@env = env.to_s
end
method_missing(m, *args) click to toggle source

If ‘args` empty it will try to find `m.to_s` and `m` in config else (or if not found) it will call super

Calls superclass method
# File lib/non_config/base.rb, line 89
def self.method_missing(m, *args)
  result = self[m.to_s]
  return result if result

  result = self[m]
  return result if result

  super
end
save(file_alias = nil) click to toggle source
# File lib/non_config/base.rb, line 99
def self.save(file_alias = nil)
  fail FileNotRegistered if file_alias && !@@files.key?(file_alias)

  if file_alias
    @@files[file_alias].save
  else
    @@files.values.each(&:save)
  end
end
set(key, value, file_alias = nil) click to toggle source

Sets value to one of config files

# File lib/non_config/base.rb, line 52
def self.set(key, value, file_alias = nil)
  file = config_file file_alias

  if @@env
    file[@@env] ||= {}
    file[@@env][key] = value
  else
    file[key] = value
  end
end
source(file_alias, path) click to toggle source

Loads file.

Files that were added last are considered to be more important i.e. if you have

source :file1, '...'
source :file2, '...'
source :file3, '...'

all operations will be executed from file3 to file1

@param file_alias [Symbol, String] alias for file @param path [String] full path to config @raise [StandardError]

# File lib/non_config/base.rb, line 28
def self.source(file_alias, path)
  fail('file alias is already taken') if @@files[file_alias]

  @@files[file_alias] = ConfigFile.new(path)
end