class Upman::Server::Socket

Attributes

server[R]

Public Class Methods

new() click to toggle source
# File lib/upman/server/socket.rb, line 16
def initialize
  @config = ::Upman::Core::Config.daemon

end

Public Instance Methods

run!() click to toggle source
# File lib/upman/server/socket.rb, line 21
def run!

  server = HTTPServer.new(
      BindAddress: @config[:listen],
      :Port => @config[:port],
      :SSLEnable => @config[:ssl],
      :debugger => false,
      :daemonize => true,
      :SSLPrivateKey => OpenSSL::PKey::RSA.new(
          File.open(@config[:key]).read),
      :SSLCertificate => OpenSSL::X509::Certificate.new(
          File.open(@config[:cert]).read),
      :SSLCertName => [["CN", WEBrick::Utils::getservername]],
      Logger: WEBrick::Log.new("/dev/null"),
      AccessLog: [],
  )

  _register_extensions(server)

  protocol = @config[:ssl] ? 'https://' : 'http://'
  info "Starting listener on #{protocol}#{@config[:listen]}:#{@config[:port]}"
  server.start

end

Private Instance Methods

_register_extensions(server) click to toggle source
# File lib/upman/server/socket.rb, line 49
def _register_extensions(server)

  @config[:extensions].each do |extension|
    require_relative "../../upman/extensions/#{extension}"
    ext_obj  = dynload("Upman::Extensions::#{extension.split('_').map(&:capitalize).join('')}")
    info "Register /#{ext_obj ::REQUEST_PATH}.do for Upman::Extensions::#{extension.split('_').map(&:capitalize).join('')}"
    ext_class = ext_obj .new
    server.mount "/#{ext_obj ::REQUEST_PATH}.do", ext_class.register
  end
end