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