diff options
Diffstat (limited to 'lib/tapicero/config.rb')
-rw-r--r-- | lib/tapicero/config.rb | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/lib/tapicero/config.rb b/lib/tapicero/config.rb deleted file mode 100644 index 7d7d0e1..0000000 --- a/lib/tapicero/config.rb +++ /dev/null @@ -1,99 +0,0 @@ -require 'yaml' - -module Tapicero - module Config - extend self - - attr_accessor :users_db_name - attr_accessor :db_prefix - attr_accessor :couch_connection - attr_accessor :security - attr_accessor :seq_file - attr_accessor :log_file - attr_accessor :log_level - - def self.load(base_dir, *configs) - loaded = configs.collect do |file_path| - file = find_file(base_dir, file_path) - load_config(file) - end - init_logger - log_loaded_configs(loaded.compact) - end - - def couch_host(conf = nil) - conf ||= couch_connection - userinfo = [conf[:username], conf[:password]].compact.join(':') - userinfo += '@' unless userinfo.empty? - "#{conf[:protocol]}://#{userinfo}#{conf[:host]}:#{conf[:port]}" - end - - def couch_host_without_password - couch_host couch_connection.merge({:password => nil}) - end - - private - - def init_logger - if log_file - require 'logger' - Tapicero.logger = Logger.new(log_file) - else - require 'syslog/logger' - Tapicero.logger = Syslog::Logger.new('tapicero') - end - Tapicero.logger.level = Logger.const_get(log_level.upcase) - end - - def load_config(file_path) - return unless file_path - load_settings YAML.load(File.read(file_path)) - return file_path - rescue NoMethodError => exc - init_logger - Tapicero.logger.fatal "Error in file #{file_path}" - Tapicero.logger.fatal exc - exit(1) - end - - def load_settings(hash) - return unless hash - hash.each do |key, value| - apply_setting(key, value) - end - end - - def apply_setting(key, value) - if value.is_a? Hash - value = symbolize_keys(value) - end - self.send("#{key}=", value) - rescue NoMethodError => exc - STDERR.puts "'#{key}' is not a valid option" - raise exc - end - - def self.symbolize_keys(hsh) - newhsh = {} - hsh.keys.each do |key| - newhsh[key.to_sym] = hsh[key] - end - newhsh - end - - def self.find_file(base_dir, file_path) - return nil unless file_path - if defined? CWD - return File.expand_path(file_path, CWD) if File.exists?(File.expand_path(file_path, CWD)) - end - return File.expand_path(file_path, base_dir) if File.exists?(File.expand_path(file_path, base_dir)) - return nil - end - - def log_loaded_configs(files) - files.each do |file| - Tapicero.logger.info "Loaded config from #{file} ." - end - end - end -end |