Class: Cloudist::Application

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/cloudist/application.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.signal_trap!Object



17
18
19
20
# File 'lib/cloudist/application.rb', line 17

def signal_trap!
  ::Signal.trap('INT') { Cloudist.stop }
  ::Signal.trap('TERM'){ Cloudist.stop }
end

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



8
9
10
11
12
13
14
15
# File 'lib/cloudist/application.rb', line 8

def start(options = {}, &block)
  options = instance.settings.update(options)
  AMQP.start(options) do
    instance.setup_reconnect_hook!

    instance.instance_eval(&block) if block_given?
  end
end

Instance Method Details

#default_settingsObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/cloudist/application.rb', line 31

def default_settings
  uri = URI.parse(ENV["AMQP_URL"] || 'amqp://guest:guest@localhost:5672/')
  {
    :vhost => uri.path,
    :host => uri.host,
    :user => uri.user,
    :port => uri.port || 5672,
    :pass => uri.password,
    :heartbeat => 5,
    :logging => false
  }
rescue Object => e
  raise "invalid AMQP_URL: (#{uri.inspect}) #{e.class} -> #{e.message}"
end

#settingsObject



23
24
25
# File 'lib/cloudist/application.rb', line 23

def settings
  @@settings ||= default_settings
end

#settings=(settings_hash) ⇒ Object



27
28
29
# File 'lib/cloudist/application.rb', line 27

def settings=(settings_hash)
  @@settings = default_settings.update(settings_hash)
end