class AMQP::Integration::Rails

Public Class Methods

environment() click to toggle source

@return [String] application environment

# File lib/amqp/integration/rails.rb, line 8
def self.environment
  if defined?(::Rails)
    ::Rails.env
  else
    ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
  end
end
root() click to toggle source

@return [String] application root directory

# File lib/amqp/integration/rails.rb, line 17
def self.root
  defined?(::Rails) && ::Rails.root || Dir.pwd
end
start(options_or_uri = {}, &block) click to toggle source
# File lib/amqp/integration/rails.rb, line 21
def self.start(options_or_uri = {}, &block)
  yaml     = YAML.load_file(File.join(root, 'config', 'amqp.yml'))
  settings = yaml.fetch(environment, Hash.new).symbolize_keys

  arg      = if options_or_uri.is_a?(Hash)
               settings.merge(options_or_uri)[:uri]
             else
               settings[:uri] || options_or_uri
             end

  EventMachine.next_tick do
    AMQP.start(arg, &block)
  end
end