Class: AMQP::Integration::Rails

Inherits:
Object
  • Object
show all
Defined in:
lib/amqp/integration/rails.rb

Class Method Summary collapse

Class Method Details

.environmentString

Returns application environment.

Returns:

  • (String)

    application environment



8
9
10
11
12
13
14
# 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

.rootString

Returns application root directory.

Returns:

  • (String)

    application root directory



17
18
19
# File 'lib/amqp/integration/rails.rb', line 17

def self.root
  defined?(::Rails) && ::Rails.root || Dir.pwd
end

.start(options_or_uri = {}, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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