Class: Goliath::Server
- Inherits:
-
Object
- Object
- Goliath::Server
- Defined in:
- lib/goliath/server.rb
Constant Summary
- DEFAULT_PORT =
9000
- DEFAULT_ADDRESS =
'0.0.0.0'
Instance Attribute Summary (collapse)
-
- (Object) address
Returns the value of attribute address.
-
- (Object) app
Returns the value of attribute app.
-
- (Object) config
Returns the value of attribute config.
-
- (Object) logger
Returns the value of attribute logger.
-
- (Object) options
Returns the value of attribute options.
-
- (Object) plugins
Returns the value of attribute plugins.
-
- (Object) port
Returns the value of attribute port.
-
- (Object) status
Returns the value of attribute status.
Instance Method Summary (collapse)
- - (Object) config_dir
- - (Object) environment(type, &blk)
- - (Object) import(name)
-
- (Server) initialize(address = DEFAULT_ADDRESS, port = DEFAULT_PORT)
constructor
A new instance of Server.
- - (Object) load_config(file = nil)
- - (Object) load_plugins
- - (Object) start
Constructor Details
- (Server) initialize(address = DEFAULT_ADDRESS, port = DEFAULT_PORT)
A new instance of Server
12 13 14 15 16 17 18 19 |
# File 'lib/goliath/server.rb', line 12 def initialize(address = DEFAULT_ADDRESS, port = DEFAULT_PORT) @address = address @port = port @status = {} @config = {} @plugins = [] end |
Instance Attribute Details
- (Object) address
Returns the value of attribute address
7 8 9 |
# File 'lib/goliath/server.rb', line 7 def address @address end |
- (Object) app
Returns the value of attribute app
7 8 9 |
# File 'lib/goliath/server.rb', line 7 def app @app end |
- (Object) config
Returns the value of attribute config
7 8 9 |
# File 'lib/goliath/server.rb', line 7 def config @config end |
- (Object) logger
Returns the value of attribute logger
7 8 9 |
# File 'lib/goliath/server.rb', line 7 def logger @logger end |
- (Object) options
Returns the value of attribute options
7 8 9 |
# File 'lib/goliath/server.rb', line 7 def @options end |
- (Object) plugins
Returns the value of attribute plugins
7 8 9 |
# File 'lib/goliath/server.rb', line 7 def plugins @plugins end |
- (Object) port
Returns the value of attribute port
7 8 9 |
# File 'lib/goliath/server.rb', line 7 def port @port end |
- (Object) status
Returns the value of attribute status
7 8 9 |
# File 'lib/goliath/server.rb', line 7 def status @status end |
Instance Method Details
- (Object) config_dir
50 51 52 |
# File 'lib/goliath/server.rb', line 50 def config_dir "#{File.(File.dirname($0))}/config" end |
- (Object) environment(type, &blk)
59 60 61 |
# File 'lib/goliath/server.rb', line 59 def environment(type, &blk) blk.call if type.to_sym == Goliath.env.to_sym end |
- (Object) import(name)
54 55 56 57 |
# File 'lib/goliath/server.rb', line 54 def import(name) file = "#{config_dir}/#{name}.rb" load_config(file) end |
- (Object) load_config(file = nil)
43 44 45 46 47 48 |
# File 'lib/goliath/server.rb', line 43 def load_config(file = nil) file ||= "#{config_dir}/#{File.basename($0)}" return unless File.exists?(file) eval(IO.read(file)) end |
- (Object) load_plugins
63 64 65 66 67 68 69 70 |
# File 'lib/goliath/server.rb', line 63 def load_plugins @plugins.each do |(name, args)| logger.info("Loading #{name.to_s}") plugin = name.new(port, config, status, logger) plugin.run(*args) end end |
- (Object) start
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/goliath/server.rb', line 21 def start EM.synchrony do trap("INT") { EM.stop } trap("TERM") { EM.stop } EM.epoll load_config load_plugins EM.start_server(address, port, Goliath::Connection) do |conn| conn.app = app conn.logger = logger conn.status = status conn.config = config conn. = end EM.set_effective_user("nobody") if Goliath.prod? end end |