class Conjuror::Settings
Attributes
data[R]
file[R]
name[R]
Public Class Methods
directory_for(name)
click to toggle source
# File lib/conjuror/settings.rb, line 56 def self.directory_for(name) File.join(ENV['HOME'], ".conjuror", name.to_s.gsub(/^\.+/, '')) end
Public Instance Methods
[](key)
click to toggle source
def reload
self.use @name, @file
end
# File lib/conjuror/settings.rb, line 34 def [] key self.reload @data[key] end
[]=(key, value)
click to toggle source
ensures that every new setting is first persisted to the file.
# File lib/conjuror/settings.rb, line 40 def []= key, value @data[key] = value save_configuration value end
directory()
click to toggle source
# File lib/conjuror/settings.rb, line 46 def directory self.class.directory_for(@name) end
file=(file)
click to toggle source
# File lib/conjuror/settings.rb, line 16 def file= file @file = (file ? file.to_s : "conf") @data = (YAML.load_file(self.path) rescue {}) end
method_missing(*args)
click to toggle source
# File lib/conjuror/settings.rb, line 50 def method_missing *args return @data[args.first.to_s] if @data && config_defined?(args.first.to_s) return @data[args.first.to_sym] if @data && config_defined?(args.first.to_sym) raise NoMethodError, "Found no such method." end
path()
click to toggle source
# File lib/conjuror/settings.rb, line 21 def path raise Conjuror::NoConfigurationLoadedError unless @name && @file File.join(self.directory, @file + ".yml") end
reload()
click to toggle source
# File lib/conjuror/settings.rb, line 26 def reload self.use @name, @file end
use(name = nil, file = nil)
click to toggle source
Returns an instance of the class itself.
# File lib/conjuror/settings.rb, line 10 def use name = nil, file = nil self.name = name self.file = file self end
Private Instance Methods
config_defined?(key)
click to toggle source
# File lib/conjuror/settings.rb, line 72 def config_defined? key @data.has_key? key end
name=(name)
click to toggle source
# File lib/conjuror/settings.rb, line 62 def name= name @name = name FileUtils.mkdir_p self.directory unless File.directory? self.directory end
save_configuration()
click to toggle source
# File lib/conjuror/settings.rb, line 67 def save_configuration File.open(self.path, "w") { |f| f.puts @data.to_yaml } @data end