Class: Geong::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/geong/server.rb,
lib/geong/server/configuration.rb

Defined Under Namespace

Classes: Configuration

Constant Summary collapse

@@default_configuration =
Configuration.new

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration) ⇒ Server

Returns a new instance of Server.



33
34
35
36
37
# File 'lib/geong/server.rb', line 33

def initialize(configuration)
  @configuration = configuration
  @logger = configuration.logger
  @server = configuration.get_server
end

Class Method Details

.configure(&block) ⇒ Object



29
30
31
# File 'lib/geong/server.rb', line 29

def self.configure(&block)
  @@default_configuration.configure(&block)
end

.start(argv) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/geong/server.rb', line 10

def self.start(argv)
  params = ARGV.getopts('', "port:#{Geong::Server::Configuration::DEFAULT_PORT}", 'daemon', 'config:')
  
  @@default_configuration.port = params["port"] || DEFAULT_PORT
  
  config_filepath = params["config"] ? File.expand_path(params["config"]) : null
  
  if config_filepath
    @@default_configuration.logger.info "Load config file. #{config_filepath}"
    load config_filepath
  end

  if params["daemon"]
    Process.daemon
  end

  new(@@default_configuration).serve
end

Instance Method Details

#serveObject



39
40
41
42
# File 'lib/geong/server.rb', line 39

def serve
  @logger.info "Starting the geong server..."
  @server.serve()
end