class Configurative::Settings
Public Class Methods
[](key)
click to toggle source
# File lib/configurative/settings.rb, line 40 def self.[](key) instance_for(self)[key] end
[]=(key, value)
click to toggle source
# File lib/configurative/settings.rb, line 44 def self.[]=(key, value) instance_for(self)[key] = value end
empty?()
click to toggle source
# File lib/configurative/settings.rb, line 56 def self.empty? instance_for(self).empty? end
environment(setting)
click to toggle source
# File lib/configurative/settings.rb, line 98 def self.environment(setting) options_for(self)[:environment] = setting end
fetch(key, alternative=nil)
click to toggle source
# File lib/configurative/settings.rb, line 48 def self.fetch(key, alternative=nil) self[key] || alternative end
files(*files)
click to toggle source
# File lib/configurative/settings.rb, line 90 def self.files(*files) options_for(self)[:files] = files end
include?(key)
click to toggle source
# File lib/configurative/settings.rb, line 52 def self.include?(key) instance_for(self).include?(key) end
instance()
click to toggle source
# File lib/configurative/settings.rb, line 16 def self.instance instance_for(self) end
load(*files)
click to toggle source
# File lib/configurative/settings.rb, line 110 def self.load(*files) settings = nil path = find_file(*files) if path begin settings = SettingsLoader.new(options).load!(path) @@instances[self] = settings rescue => error # Deliberately ignored. end end settings end
load!(*files)
click to toggle source
# File lib/configurative/settings.rb, line 124 def self.load!(*files) settings = load(*files) raise ConfigurationError, "Unable to locate an accessible configuration file." if settings.nil? settings end
method_missing(method_name, *arguments, &block)
click to toggle source
Calls superclass method
# File lib/configurative/settings.rb, line 77 def self.method_missing(method_name, *arguments, &block) data = instance_for(self) if method_name[-1,1] == "=" data[property_name(method_name)] = arguments.first else if data.include?(method_name) data[method_name] else super end end end
namespace(setting)
click to toggle source
# File lib/configurative/settings.rb, line 102 def self.namespace(setting) environment(setting) end
new(options={})
click to toggle source
# File lib/configurative/settings.rb, line 11 def initialize(options={}) @settings = nil self.class.options_for(self.class).merge!(options) end
reset(full=false)
click to toggle source
# File lib/configurative/settings.rb, line 68 def self.reset(full=false) @@instances = {} @@options.delete(self) if full end
respond_to?(method_name, include_private=false)
click to toggle source
Calls superclass method
# File lib/configurative/settings.rb, line 73 def self.respond_to?(method_name, include_private=false) instance_for(self).include?(property_name(method_name)) || super end
section(setting)
click to toggle source
# File lib/configurative/settings.rb, line 106 def self.section(setting) options_for(self)[:section] = setting end
sources(*files)
click to toggle source
# File lib/configurative/settings.rb, line 94 def self.sources(*files) files(*files) end
Private Class Methods
find_file(*paths)
click to toggle source
# File lib/configurative/settings.rb, line 140 def self.find_file(*paths) paths.find {|entry| File.exist?(entry) && File.file?(entry) && File.readable?(entry)} end
instance_for(klass, defaults={})
click to toggle source
# File lib/configurative/settings.rb, line 144 def self.instance_for(klass, defaults={}) if !@@instances.include?(klass) files = options[:files] || [] settings = load(*files) parser = SettingsParser.new(options_for(klass)) @@instances[klass] = settings.nil? ? parser.parse(defaults) : settings end @@instances[klass] end
options()
click to toggle source
# File lib/configurative/settings.rb, line 136 def self.options options_for(self) end
options_for(klass)
click to toggle source
# File lib/configurative/settings.rb, line 154 def self.options_for(klass) if !@@options.include?(klass) @@options[klass] = {environment: (ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"), section: nil} end @@options[klass] end
property_name(name)
click to toggle source
# File lib/configurative/settings.rb, line 162 def self.property_name(name) (name.to_s[-1, 1] == "=" ? name.to_s[0...-1] : name.to_s).to_sym end
Public Instance Methods
[](key)
click to toggle source
# File lib/configurative/settings.rb, line 20 def [](key) self.class[key] end
[]=(key, value)
click to toggle source
# File lib/configurative/settings.rb, line 24 def []=(key, value) self.class[key] = value end
empty?()
click to toggle source
# File lib/configurative/settings.rb, line 36 def empty? self.class.empty? end
fetch(key, alternative=nil)
click to toggle source
# File lib/configurative/settings.rb, line 28 def fetch(key, alternative=nil) self.class.fetch(key, alternative) end
include?(key)
click to toggle source
# File lib/configurative/settings.rb, line 32 def include?(key) self.class.include?(key) end
method_missing(method_name, *arguments, &block)
click to toggle source
Calls superclass method
# File lib/configurative/settings.rb, line 64 def method_missing(method_name, *arguments, &block) self.class.method_missing(method_name, *arguments, &block) || super end
respond_to?(method_name, include_private=false)
click to toggle source
Calls superclass method
# File lib/configurative/settings.rb, line 60 def respond_to?(method_name, include_private=false) self.class.instance_for?(self.class).include?(property_name(method_name)) || super end
Private Instance Methods
options()
click to toggle source
# File lib/configurative/settings.rb, line 132 def options self.class.options end