class YARD::Server::RackAdapter
A server adapter to respond to requests using the Rack
server infrastructure.
Public Instance Methods
call(env)
click to toggle source
Responds to Rack
requests and builds a response with the {Router}. @return [Array(Numeric,Hash,Array)] the Rack-style response
# File lib/yard/server/rack_adapter.rb, line 49 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
start()
click to toggle source
Starts the Rack::Server
. This method will pass control to the server and block. @return [void]
# File lib/yard/server/rack_adapter.rb, line 62 def start server = Rack::Server.new(server_options) server.instance_variable_set("@app", self) print_start_message(server) server.start end
Private Instance Methods
print_start_message(server)
click to toggle source
# File lib/yard/server/rack_adapter.rb, line 71 def print_start_message(server) opts = server.default_options.merge(server.options) log.puts ">> YARD #{YARD::VERSION} documentation server at http://#{opts[:Host]}:#{opts[:Port]}" # Only happens for Mongrel return unless server.server.to_s == "Rack::Handler::Mongrel" log.puts ">> #{server.server.class_name} web server (running on Rack)" log.puts ">> Listening on #{opts[:Host]}:#{opts[:Port]}, CTRL+C to stop" end