module Servitude::Server

Public Class Methods

included( base ) click to toggle source
# File lib/servitude/server.rb, line 7
def self.included( base )
  base.class_eval do
    include ConfigHelper
    include Logging
    include ServerLogging
    include Hooks

    define_hook :after_initialize,
                :before_initialize,
                :before_run,
                :before_sleep,
                :finalize

    attr_reader :cli_options
  end
end
new( cli_options={} ) click to toggle source
# File lib/servitude/server.rb, line 24
def initialize( cli_options={} )
  unless host_namespace.boot_called
    raise 'You must call boot before starting server'
  end

  @cli_options = cli_options

  run_hook :before_initialize
  initialize_loggers
  run_hook :after_initialize
end

Public Instance Methods

start() click to toggle source
# File lib/servitude/server.rb, line 36
def start
  log_startup
  setup_signal_handling
  run_sequence
  sleep_sequence
end

Protected Instance Methods

host_namespace() click to toggle source
# File lib/servitude/server.rb, line 64
def host_namespace
  raise NotImplementedError
end
run() click to toggle source
# File lib/servitude/server.rb, line 45
def run
  raise NotImplementedError
end
run_sequence() click to toggle source
# File lib/servitude/server.rb, line 49
def run_sequence
  run_hook :before_run
  run
end
setup_signal_handling() click to toggle source
# File lib/servitude/server.rb, line 59
def setup_signal_handling
  trap( INT )  { stop }
  trap( TERM ) { stop }
end
sleep_sequence() click to toggle source
# File lib/servitude/server.rb, line 54
def sleep_sequence
  run_hook :before_sleep
  sleep
end

Private Instance Methods

finalize() click to toggle source
# File lib/servitude/server.rb, line 70
def finalize
  run_hook :finalize
end
stop() click to toggle source
# File lib/servitude/server.rb, line 74
def stop
  Thread.new { finalize; exit }.join
end