/opt/cpanel/ea-ruby27/root/usr/share/ruby/ruby-2.7.8
NameSizeModeActions
benchmark/-0755rm
bigdecimal/-0755rm
bundler/-0755rm
cgi/-0755rm
csv/-0755rm
delegate/-0755rm
did_you_mean/-0755rm
digest/-0755rm
drb/-0755rm
fiddle/-0755rm
forwardable/-0755rm
getoptlong/-0755rm
io/-0755rm
irb/-0755rm
json/-0755rm
logger/-0755rm
matrix/-0755rm
net/-0755rm
observer/-0755rm
open3/-0755rm
openssl/-0755rm
optparse/-0755rm
ostruct/-0755rm
pstore/-0755rm
psych/-0755rm
racc/-0755rm
rdoc/-0755rm
reline/-0755rm
rexml/-0755rm
rinda/-0755rm
ripper/-0755rm
rss/-0755rm
rubygems/-0755rm
singleton/-0755rm
syslog/-0755rm
timeout/-0755rm
tracer/-0755rm
unicode_normalize/-0755rm
uri/-0755rm
webrick/-0755rm
yaml/-0755rm
abbrev.rb35290644editdlrm
base64.rb33790644editdlrm
benchmark.rb184530644editdlrm
bigdecimal.rb240644editdlrm
bundler.rb237180644editdlrm
cgi.rb100370644editdlrm
coverage.rb3680644editdlrm
csv.rb556430644editdlrm
date.rb10660644editdlrm
debug.rb306240644editdlrm
delegate.rb113430644editdlrm
did_you_mean.rb38060644editdlrm
digest.rb28940644editdlrm
drb.rb500644editdlrm
English.rb62580644editdlrm
erb.rb295040644editdlrm
expect.rb22170644editdlrm
fiddle.rb17220644editdlrm
fileutils.rb492710644editdlrm
find.rb25260644editdlrm
forwardable.rb91300644editdlrm
getoptlong.rb157870644editdlrm
ipaddr.rb199890644editdlrm
irb.rb276030644editdlrm
json.rb18090644editdlrm
kconv.rb58610644editdlrm
logger.rb167920644editdlrm
matrix.rb617030644editdlrm
mkmf.rb885390644editdlrm
monitor.rb69200644editdlrm
mutex_m.rb22140644editdlrm
observer.rb59710644editdlrm
open-uri.rb260880644editdlrm
open3.rb223360644editdlrm
openssl.rb4690644editdlrm
optionparser.rb590644editdlrm
optparse.rb609190644editdlrm
ostruct.rb107850644editdlrm
pathname.rb165580644editdlrm
pp.rb159780644editdlrm
prettyprint.rb162760644editdlrm
prime.rb126700644editdlrm
pstore.rb150630644editdlrm
psych.rb217180644editdlrm
racc.rb1370644editdlrm
rdoc.rb50000644editdlrm
readline.rb1130644editdlrm
reline.rb132530644editdlrm
resolv-replace.rb18050644editdlrm
resolv.rb795640644editdlrm
ripper.rb24940644editdlrm
rss.rb29630644editdlrm
rubygems.rb391080644editdlrm
securerandom.rb95280644editdlrm
set.rb246220644editdlrm
shellwords.rb68160644editdlrm
singleton.rb41580644editdlrm
socket.rb447020644editdlrm
tempfile.rb112130644editdlrm
time.rb245900644editdlrm
timeout.rb40750644editdlrm
tmpdir.rb41420644editdlrm
tracer.rb66400644editdlrm
tsort.rb146420644editdlrm
un.rb102020644editdlrm
uri.rb30390644editdlrm
weakref.rb14730644editdlrm
webrick.rb68900644editdlrm
yaml.rb18450644editdlrm
Edit: /opt/cpanel/ea-ruby27/root/usr/share/ruby/ruby-2.7.8/webrick.rb (6890B)
# frozen_string_literal: false ## # = WEB server toolkit. # # WEBrick is an HTTP server toolkit that can be configured as an HTTPS server, # a proxy server, and a virtual-host server. WEBrick features complete # logging of both server operations and HTTP access. WEBrick supports both # basic and digest authentication in addition to algorithms not in RFC 2617. # # A WEBrick server can be composed of multiple WEBrick servers or servlets to # provide differing behavior on a per-host or per-path basis. WEBrick # includes servlets for handling CGI scripts, ERB pages, Ruby blocks and # directory listings. # # WEBrick also includes tools for daemonizing a process and starting a process # at a higher privilege level and dropping permissions. # # == Starting an HTTP server # # To create a new WEBrick::HTTPServer that will listen to connections on port # 8000 and serve documents from the current user's public_html folder: # # require 'webrick' # # root = File.expand_path '~/public_html' # server = WEBrick::HTTPServer.new :Port => 8000, :DocumentRoot => root # # To run the server you will need to provide a suitable shutdown hook as # starting the server blocks the current thread: # # trap 'INT' do server.shutdown end # # server.start # # == Custom Behavior # # The easiest way to have a server perform custom operations is through # WEBrick::HTTPServer#mount_proc. The block given will be called with a # WEBrick::HTTPRequest with request info and a WEBrick::HTTPResponse which # must be filled in appropriately: # # server.mount_proc '/' do |req, res| # res.body = 'Hello, world!' # end # # Remember that +server.mount_proc+ must precede +server.start+. # # == Servlets # # Advanced custom behavior can be obtained through mounting a subclass of # WEBrick::HTTPServlet::AbstractServlet. Servlets provide more modularity # when writing an HTTP server than mount_proc allows. Here is a simple # servlet: # # class Simple < WEBrick::HTTPServlet::AbstractServlet # def do_GET request, response # status, content_type, body = do_stuff_with request # # response.status = 200 # response['Content-Type'] = 'text/plain' # response.body = 'Hello, World!' # end # end # # To initialize the servlet you mount it on the server: # # server.mount '/simple', Simple # # See WEBrick::HTTPServlet::AbstractServlet for more details. # # == Virtual Hosts # # A server can act as a virtual host for multiple host names. After creating # the listening host, additional hosts that do not listen can be created and # attached as virtual hosts: # # server = WEBrick::HTTPServer.new # ... # # vhost = WEBrick::HTTPServer.new :ServerName => 'vhost.example', # :DoNotListen => true, # ... # vhost.mount '/', ... # # server.virtual_host vhost # # If no +:DocumentRoot+ is provided and no servlets or procs are mounted on the # main server it will return 404 for all URLs. # # == HTTPS # # To create an HTTPS server you only need to enable SSL and provide an SSL # certificate name: # # require 'webrick' # require 'webrick/https' # # cert_name = [ # %w[CN localhost], # ] # # server = WEBrick::HTTPServer.new(:Port => 8000, # :SSLEnable => true, # :SSLCertName => cert_name) # # This will start the server with a self-generated self-signed certificate. # The certificate will be changed every time the server is restarted. # # To create a server with a pre-determined key and certificate you can provide # them: # # require 'webrick' # require 'webrick/https' # require 'openssl' # # cert = OpenSSL::X509::Certificate.new File.read '/path/to/cert.pem' # pkey = OpenSSL::PKey::RSA.new File.read '/path/to/pkey.pem' # # server = WEBrick::HTTPServer.new(:Port => 8000, # :SSLEnable => true, # :SSLCertificate => cert, # :SSLPrivateKey => pkey) # # == Proxy Server # # WEBrick can act as a proxy server: # # require 'webrick' # require 'webrick/httpproxy' # # proxy = WEBrick::HTTPProxyServer.new :Port => 8000 # # trap 'INT' do proxy.shutdown end # # See WEBrick::HTTPProxy for further details including modifying proxied # responses. # # == Basic and Digest authentication # # WEBrick provides both Basic and Digest authentication for regular and proxy # servers. See WEBrick::HTTPAuth, WEBrick::HTTPAuth::BasicAuth and # WEBrick::HTTPAuth::DigestAuth. # # == WEBrick as a Production Web Server # # WEBrick can be run as a production server for small loads. # # === Daemonizing # # To start a WEBrick server as a daemon simple run WEBrick::Daemon.start # before starting the server. # # === Dropping Permissions # # WEBrick can be started as one user to gain permission to bind to port 80 or # 443 for serving HTTP or HTTPS traffic then can drop these permissions for # regular operation. To listen on all interfaces for HTTP traffic: # # sockets = WEBrick::Utils.create_listeners nil, 80 # # Then drop privileges: # # WEBrick::Utils.su 'www' # # Then create a server that does not listen by default: # # server = WEBrick::HTTPServer.new :DoNotListen => true, # ... # # Then overwrite the listening sockets with the port 80 sockets: # # server.listeners.replace sockets # # === Logging # # WEBrick can separately log server operations and end-user access. For # server operations: # # log_file = File.open '/var/log/webrick.log', 'a+' # log = WEBrick::Log.new log_file # # For user access logging: # # access_log = [ # [log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT], # ] # # server = WEBrick::HTTPServer.new :Logger => log, :AccessLog => access_log # # See WEBrick::AccessLog for further log formats. # # === Log Rotation # # To rotate logs in WEBrick on a HUP signal (like syslogd can send), open the # log file in 'a+' mode (as above) and trap 'HUP' to reopen the log file: # # trap 'HUP' do log_file.reopen '/path/to/webrick.log', 'a+' # # == Copyright # # Author: IPR -- Internet Programming with Ruby -- writers # # Copyright (c) 2000 TAKAHASHI Masayoshi, GOTOU YUUZOU # Copyright (c) 2002 Internet Programming with Ruby writers. All rights # reserved. #-- # $IPR: webrick.rb,v 1.12 2002/10/01 17:16:31 gotoyuzo Exp $ module WEBrick end require 'webrick/compat.rb' require 'webrick/version.rb' require 'webrick/config.rb' require 'webrick/log.rb' require 'webrick/server.rb' require_relative 'webrick/utils.rb' require 'webrick/accesslog' require 'webrick/htmlutils.rb' require 'webrick/httputils.rb' require 'webrick/cookie.rb' require 'webrick/httpversion.rb' require 'webrick/httpstatus.rb' require 'webrick/httprequest.rb' require 'webrick/httpresponse.rb' require 'webrick/httpserver.rb' require 'webrick/httpservlet.rb' require 'webrick/httpauth.rb'