Class: Virginia::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/virginia/service.rb

Class Method Summary collapse

Class Method Details

.startObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/virginia/service.rb', line 7

def self.start
  config = Adhearsion.config.virginia

  # Rack-compatible options
  app, options = ::Rack::Builder.parse_file File.join(Adhearsion.root, config[:rackup])
  options = {
    Host: config[:host],
    Port: config[:port]
  }.merge(options)

  Virginia.logger.singleton_class.redefine_method(:write) { |msg| info msg.chomp }

  app = Rack::CommonLogger.new(app, Virginia.logger)
  supervisor = ::Reel::Rack::Server.supervise_as(:reel_rack_server, app, options)

  Adhearsion::Events.register_callback :shutdown do
    supervisor.terminate
  end
end