module WAB::Impl::Agoo::Server
The Server
module provides a server start method.
Public Class Methods
start(shell)
click to toggle source
Start the server and set the mount points.
# File lib/wab/impl/agoo/server.rb, line 12 def self.start(shell) options = { pedantic: false, log_dir: '', thread_count: 0, log_console: true, log_classic: true, log_colorize: true, log_states: { INFO: shell.logger.info?, DEBUG: shell.logger.debug?, connect: shell.logger.info?, request: shell.logger.info?, response: shell.logger.info?, eval: shell.logger.info?, } } server = ::Agoo::Server.new(shell.http_port, shell.http_dir, options) shell.mounts.each { |hh| if hh.has_key?(:type) handler = WAB::Impl::Agoo::Handler.new(shell, shell.create_controller(hh[:handler])) server.handle(nil, "#{shell.pre_path}/#{hh[:type]}", handler) server.handle(nil, "#{shell.pre_path}/#{hh[:type]}/*", handler) elsif hh.has_key?(:path) path = hh[:path] if path.empty? path = '/**' elsif '*' != path[-1] path << '/' unless '/' == path[-1] path << '**' end server.handle(:POST, path, shell.create_controller(hh[:handler])) else raise WAB::Error.new("Invalid handle configuration. Missing path or type.") end } server.handle(:POST, shell.tql_path, WAB::Impl::Agoo::TqlHandler.new(shell)) unless (shell.tql_path.nil? || shell.tql_path.empty?) server.handle_not_found(WAB::Impl::Agoo::ExportProxy.new(shell)) if shell.export_proxy trap 'INT' do server.shutdown end server.start end