Class: YARD::Server::RackAdapter

Inherits:
Adapter
  • Object
show all
Includes:
WEBrick::HTTPUtils
Defined in:
lib/yard/server/rack_adapter.rb

Overview

A server adapter to respond to requests using the Rack server infrastructure.

Since:

  • 0.6.0

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from YARD::Server::Adapter

Instance Method Details

#call(env) ⇒ Array(Numeric,Hash,Array)

Responds to Rack requests and builds a response with the YARD::Server::Router.

Since:

  • 0.6.0


48
49
50
51
52
53
54
55
56
# File 'lib/yard/server/rack_adapter.rb', line 48

def call(env)
  request = Rack::Request.new(env)
  request.path_info = unescape(request.path_info) # unescape things like %3F
  router.call(request)
rescue StandardError => ex
  log.backtrace(ex)
  [500, {'Content-Type' => 'text/plain'},
    [ex.message + "\n" + ex.backtrace.join("\n")]]
end

#startvoid

This method returns an undefined value.

Starts the Rack::Server. This method will pass control to the server and block.

Since:

  • 0.6.0


61
62
63
64
65
66
# File 'lib/yard/server/rack_adapter.rb', line 61

def start
  server = Rack::Server.new(server_options)
  server.instance_variable_set("@app", self)
  print_start_message(server)
  server.start
end