class Desi::Configuration
Attributes
directory[R]
server[RW]
Public Instance Methods
directory=(dir)
click to toggle source
# File lib/desi/configuration.rb, line 14 def directory=(dir) @directory = Pathname(File.expand_path(dir)) end
load_configuration!()
click to toggle source
# File lib/desi/configuration.rb, line 20 def load_configuration! config = defaults.merge(config_files_data) public_methods(false).select {|m| m.to_s =~ /=$/ }.each do |setter| attr_name = setter.to_s.tr('=', '') if config.has_key?(attr_name) send(setter, config[attr_name]) end end self end
Private Instance Methods
config_file_data(filename)
click to toggle source
# File lib/desi/configuration.rb, line 46 def config_file_data(filename) file = File.expand_path(filename) return {} unless File.exists?(file) data = YAML.load_file(file) if data.is_a? Hash data else warn "Configuration file #{filename} contains malformed data and will be ignored" {} end end
config_files()
click to toggle source
# File lib/desi/configuration.rb, line 36 def config_files %w[/etc/desi.yml ~/.desi.yml] end
config_files_data()
click to toggle source
# File lib/desi/configuration.rb, line 40 def config_files_data config_files.each_with_object({}) do |filename, hash| hash.merge! config_file_data(filename) end end
defaults()
click to toggle source
# File lib/desi/configuration.rb, line 60 def defaults {'directory' => "~/elasticsearch", "server" => "localhost:9200"} end