Class: YARD::Server::RackAdapter
- Inherits:
-
Adapter
- Object
- Adapter
- YARD::Server::RackAdapter
- Includes:
- WEBrick::HTTPUtils
- Defined in:
- lib/yard/server/rack_adapter.rb
Overview
A server adapter to respond to requests using the Rack server infrastructure.
Instance Attribute Summary (collapse)
-
- (String) document_root
inherited
from Adapter
The location where static files are located, if any.
-
- (Hash{String=>Array<LibraryVersion>}) libraries
inherited
from Adapter
A map of libraries.
-
- (Hash) options
inherited
from Adapter
Options passed and processed by adapters.
-
- (Router) router
inherited
from Adapter
The router object used to route URLs to commands.
-
- (Hash) server_options
inherited
from Adapter
A set of options to pass to the server backend.
Instance Method Summary (collapse)
-
- (Array(Numeric,Hash,Array)) call(env)
Responds to Rack requests and builds a response with the Router.
-
- (void) start
Starts the Rack::Server.
Constructor Details
This class inherits a constructor from YARD::Server::Adapter
Instance Attribute Details
- (String) document_root Originally defined in class Adapter
Returns the location where static files are located, if any. To set this
field on initialization, pass :DocumentRoot
to the
server_opts
argument in #initialize
- (Hash{String=>Array<LibraryVersion>}) libraries Originally defined in class Adapter
Returns a map of libraries.
- (Hash) options Originally defined in class Adapter
Returns options passed and processed by adapters. The actual options mostly depend on the adapters themselves.
- (Router) router Originally defined in class Adapter
Returns the router object used to route URLs to commands
- (Hash) server_options Originally defined in class Adapter
Returns a set of options to pass to the server backend. Note that
:DocumentRoot
also sets the #document_root.
Instance Method Details
- (Array(Numeric,Hash,Array)) call(env)
Responds to Rack requests and builds a response with the YARD::Server::Router.
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. + "\n" + ex.backtrace.join("\n")]] end |
- (void) start
This method returns an undefined value.
Starts the Rack::Server. This method will pass control to the server and block.
61 62 63 64 65 66 |
# File 'lib/yard/server/rack_adapter.rb', line 61 def start server = Rack::Server.new() server.instance_variable_set("@app", self) (server) server.start end |