class Tochtli::RabbitConnection::Config
Constants
- DEFAULTS
Public Class Methods
load(name, config=nil)
click to toggle source
# File lib/tochtli/rabbit_connection.rb, line 212 def self.load(name, config=nil) config = case config when String YAML.load_file(config).symbolize_keys when Hash config.symbolize_keys when nil {} else raise "Unexpected configuration: #{config.inspect}, Hash or String expected." end defaults = DEFAULTS if defined?(Rails) && Rails.root config_path = Rails.root.join('config/rabbit.yml') if config_path.exist? rails_config = YAML.load_file(config_path) raise "Unexpected rabbit.yml: #{rails_config.inspect}, Hash expected." unless rails_config.is_a?(Hash) rails_config = rails_config.symbolize_keys unless rails_config[:host] # backward compatibility rails_config = rails_config[name.to_sym] raise "RabbitMQ '#{name}' configuration not set in rabbit.yml" unless rails_config else warn "DEPRECATION WARNING: rabbit.yml should define different configurations for Rails environments (like database.yml). Please update your configuration file: #{config_path}." end defaults = defaults.merge(rails_config.symbolize_keys) end end new.merge!(defaults.merge(config)) end