class Fluent::PluginHelper::HttpServer::App

Public Class Methods

new(router, logger) click to toggle source
# File lib/fluent/plugin_helper/http_server/app.rb, line 25
def initialize(router, logger)
  @logger = logger
  @router = router
end

Public Instance Methods

call(request) click to toggle source

Required method by async-http

# File lib/fluent/plugin_helper/http_server/app.rb, line 31
def call(request)
  method = request.method
  resp =
    case method
    when HttpServer::Methods::GET
      get(request)
    when HttpServer::Methods::HEAD
      head(request)
    when HttpServer::Methods::POST
      post(request)
    when HttpServer::Methods::PATCH
      patch(request)
    when HttpServer::Methods::PUT
      put(request)
    when HttpServer::Methods::DELETE
      delete(request)
    when HttpServer::Methods::OPTIONS
      options(request)
    when HttpServer::Methods::CONNECT
      connect(request)
    when HttpServer::Methods::TRACE
      trace(request)
    else
      raise "Unknown method #{method}"
    end
  Protocol::HTTP::Response[*resp]
rescue => e
  @logger.error(e)
  Protocol::HTTP::Response[500, { 'Content-Type' => 'text/plain' }, 'Internal Server Error']
end