class Noder::HTTP::Connection

Attributes

app[RW]
environment[RW]
request_stack[RW]
settings[RW]

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/noder/http/connection.rb, line 11
def initialize(*args)
  super(*args)
  @settings = args[1]
end

Public Instance Methods

post_init() click to toggle source
Calls superclass method
# File lib/noder/http/connection.rb, line 16
def post_init
  super
  if settings[:enable_ssl]
    start_tls(:private_key_file => settings[:ssl_key], :cert_chain_file => settings[:ssl_cert], :verify_peer => false)
  end
end
process_http_request() click to toggle source
# File lib/noder/http/connection.rb, line 23
def process_http_request
  env = {
    connection: self,
    request_env: request_env,
    request: nil,
    response: nil
  }
  EM.defer do
    request_stack.call(env)
  end
end
request_env() click to toggle source
# File lib/noder/http/connection.rb, line 35
def request_env
  port, ip = Socket.unpack_sockaddr_in(get_peername)
  {
    request_method: @http_request_method,
    cookie: @http_cookie,
    content_type: @http_content_type,
    path_info: @http_path_info,
    request_uri: @http_request_uri,
    query_string: @http_query_string,
    post_content: @http_post_content,
    headers: @http_headers,
    protocol: @http_protocol,
    ip: ip
  }
end