class Ouija::Medium::Yaml
Constants
- DEFAULT_CONFIG_DIRNAME
Public Instance Methods
channel(options={})
click to toggle source
# File lib/ouija/medium/yaml.rb, line 8 def channel(options={}) config_dirname = options[:config_dirname] || DEFAULT_CONFIG_DIRNAME config_path = options[:config_path] config_files = find_config_files(config_dirname, config_path) config_map = {} config_files.each do |config_file| section_name = File.basename(config_file, '.*') begin config_data = YAML.load_file(config_file) rescue Exception => ex raise Ouija::Medium::Error.new "Failed to load YAML file \"#{config_file}\".\nError message: #{ex.message}" end config_map[section_name] = config_data end config_map end
Protected Instance Methods
find_config_files(config_dirname, config_path=nil)
click to toggle source
# File lib/ouija/medium/yaml.rb, line 27 def find_config_files(config_dirname, config_path=nil) if !config_path.nil? && !config_path.empty? config_dir = search_for_config_dir(config_dirname, config_path) raise Error.new("Could not find configuration directory \"#{config_dirname}\" in path \"#{config_path}\".") if config_dir.nil? else config_dir = search_for_config_dir(config_dirname, '.') raise Error.new("Could not find configuration directory \"#{config_dirname}\".") if config_dir.nil? end Dir.glob(File.join(config_dir, '*.yml'), File::FNM_CASEFOLD) end
search_for_config_dir(config_dirname, path)
click to toggle source
# File lib/ouija/medium/yaml.rb, line 38 def search_for_config_dir(config_dirname, path) config_dir = nil if File.directory?(path) if File.basename(path) == config_dirname config_dir = path else possible_dir = File.join(path, config_dirname) if File.exists?(possible_dir) config_dir = possible_dir else possible_dir = File.join(path, 'config', config_dirname) if File.exists?(possible_dir) config_dir = possible_dir end end end end config_dir.nil? ? nil : File.expand_path(config_dir) end