waitress-core 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/LICENSE +21 -0
- data/Rakefile +4 -0
- data/bin/waitress +22 -0
- data/ext/Thanks.md +1 -0
- data/ext/waitress_http11/ext_help.h +15 -0
- data/ext/waitress_http11/extconf.rb +6 -0
- data/ext/waitress_http11/http11.c +532 -0
- data/ext/waitress_http11/http11_parser.c +1216 -0
- data/ext/waitress_http11/http11_parser.h +49 -0
- data/ext/waitress_http11/http11_parser.java.rl +171 -0
- data/ext/waitress_http11/http11_parser.rl +165 -0
- data/ext/waitress_http11/http11_parser_common.rl +55 -0
- data/ext/waitress_http11/http11_wrb_parser.h +83 -0
- data/lib/waitress.rb +98 -0
- data/lib/waitress/chef.rb +110 -0
- data/lib/waitress/configure.rb +116 -0
- data/lib/waitress/handlers/dirhandler.rb +39 -0
- data/lib/waitress/handlers/handler.rb +57 -0
- data/lib/waitress/handlers/handler404.rb +25 -0
- data/lib/waitress/handlers/libhandler.rb +58 -0
- data/lib/waitress/kernel.rb +182 -0
- data/lib/waitress/parse/query.rb +60 -0
- data/lib/waitress/request.rb +45 -0
- data/lib/waitress/resources/default_config.rb +52 -0
- data/lib/waitress/resources/http/404.html +18 -0
- data/lib/waitress/resources/http/css/hack.css +37 -0
- data/lib/waitress/resources/http/css/waitress.css +57 -0
- data/lib/waitress/resources/http/fonts/eot/latin/hack-bold-latin-webfont.eot +0 -0
- data/lib/waitress/resources/http/fonts/eot/latin/hack-bolditalic-latin-webfont.eot +0 -0
- data/lib/waitress/resources/http/fonts/eot/latin/hack-italic-latin-webfont.eot +0 -0
- data/lib/waitress/resources/http/fonts/eot/latin/hack-regular-latin-webfont.eot +0 -0
- data/lib/waitress/resources/http/fonts/svg/latin/hack-bold-latin-webfont.svg +241 -0
- data/lib/waitress/resources/http/fonts/svg/latin/hack-bolditalic-latin-webfont.svg +241 -0
- data/lib/waitress/resources/http/fonts/svg/latin/hack-italic-latin-webfont.svg +241 -0
- data/lib/waitress/resources/http/fonts/svg/latin/hack-regular-latin-webfont.svg +241 -0
- data/lib/waitress/resources/http/fonts/web-ttf/latin/hack-bold-latin-webfont.ttf +0 -0
- data/lib/waitress/resources/http/fonts/web-ttf/latin/hack-bolditalic-latin-webfont.ttf +0 -0
- data/lib/waitress/resources/http/fonts/web-ttf/latin/hack-italic-latin-webfont.ttf +0 -0
- data/lib/waitress/resources/http/fonts/web-ttf/latin/hack-regular-latin-webfont.ttf +0 -0
- data/lib/waitress/resources/http/fonts/woff/latin/hack-bold-latin-webfont.woff +0 -0
- data/lib/waitress/resources/http/fonts/woff/latin/hack-bolditalic-latin-webfont.woff +0 -0
- data/lib/waitress/resources/http/fonts/woff/latin/hack-italic-latin-webfont.woff +0 -0
- data/lib/waitress/resources/http/fonts/woff/latin/hack-regular-latin-webfont.woff +0 -0
- data/lib/waitress/resources/http/fonts/woff2/latin/hack-bold-latin-webfont.woff2 +0 -0
- data/lib/waitress/resources/http/fonts/woff2/latin/hack-bolditalic-latin-webfont.woff2 +0 -0
- data/lib/waitress/resources/http/fonts/woff2/latin/hack-italic-latin-webfont.woff2 +0 -0
- data/lib/waitress/resources/http/fonts/woff2/latin/hack-regular-latin-webfont.woff2 +0 -0
- data/lib/waitress/resources/http/img/404.png +0 -0
- data/lib/waitress/resources/http/index.html +15 -0
- data/lib/waitress/response.rb +104 -0
- data/lib/waitress/server.rb +115 -0
- data/lib/waitress/util.rb +713 -0
- data/lib/waitress/version.rb +3 -0
- data/lib/waitress/vhost.rb +217 -0
- data/lib/waitress_http11.so +0 -0
- data/waitress-core.gemspec +27 -0
- metadata +187 -0
@@ -0,0 +1,217 @@
|
|
1
|
+
module Waitress
|
2
|
+
# The VHost class is responsible for the actions of a Virtual Host, that is
|
3
|
+
# reacting to a certain subdomain and handling the requests that are sent to it.
|
4
|
+
# The requests are managed through the usage of +Waitress::Handler+ instances.
|
5
|
+
class Vhost < Array
|
6
|
+
|
7
|
+
attr_accessor :priority
|
8
|
+
attr_accessor :domain
|
9
|
+
attr_accessor :load_path
|
10
|
+
|
11
|
+
attr_accessor :combos
|
12
|
+
attr_accessor :libraries
|
13
|
+
|
14
|
+
# Create a new Virtual Host to manage traffic on a Subdomain (Host header)
|
15
|
+
# Params:
|
16
|
+
# +pattern+:: The regex pattern used to match this VHost to subdomain(s)
|
17
|
+
# +priority+:: The priority of the VHost. If multiple VHosts match the subdomain,
|
18
|
+
# the VHost with the highest priority will be chosen. Default: 50
|
19
|
+
def initialize pattern, priority=50
|
20
|
+
@domain = pattern
|
21
|
+
@priority = priority
|
22
|
+
@load_path = []
|
23
|
+
@libdir = "~/.waitress/www/libs"
|
24
|
+
@liburi = "libraries"
|
25
|
+
|
26
|
+
@libraries = {}
|
27
|
+
@combos = {}
|
28
|
+
|
29
|
+
@on_request = []
|
30
|
+
@after_request = []
|
31
|
+
|
32
|
+
enable_waitress_resources
|
33
|
+
end
|
34
|
+
|
35
|
+
# Register a listener that will be triggered once a request has been received
|
36
|
+
# by this VHost, but before it has been passed to a listener or served. Use this
|
37
|
+
# to modify a request before it is handled.
|
38
|
+
# The Block should take arguments:
|
39
|
+
# +request+:: The +Waitress::Request+ object
|
40
|
+
# +vhost+:: The VirtualHost instance
|
41
|
+
# +client+:: The Client Socket object
|
42
|
+
def on_request &block
|
43
|
+
@on_request << block
|
44
|
+
end
|
45
|
+
|
46
|
+
# Register a listener that will be triggered once a request has been received
|
47
|
+
# by this VHost, after it has been handled, but before it is served.
|
48
|
+
# The Block should take arguments:
|
49
|
+
# +request+:: The +Waitress::Request+ object
|
50
|
+
# +response+:: The +Waitress::Response+ object
|
51
|
+
# +vhost+:: The VirtualHost instance
|
52
|
+
# +client+:: The Client Socket object
|
53
|
+
def after_request &block
|
54
|
+
@after_request << block
|
55
|
+
end
|
56
|
+
|
57
|
+
# Call this to disable the Waitress Handler (Waitress' default CSS, JS, 404 and Index)
|
58
|
+
def disable_waitress_resources
|
59
|
+
@resources = false
|
60
|
+
end
|
61
|
+
|
62
|
+
# Call this to enable the Waitress Handler (Waitress' default CSS, JS, 404 and Index)
|
63
|
+
def enable_waitress_resources
|
64
|
+
@resources = true
|
65
|
+
end
|
66
|
+
|
67
|
+
# Returns true if the VHost has the Waitress Handler enabled (Waitress' default CSS, JS, 404 and Index)
|
68
|
+
def resources?
|
69
|
+
@resources
|
70
|
+
end
|
71
|
+
|
72
|
+
# Change the default 404 page for the VHost. This should be an absolute file path to your 404 page
|
73
|
+
# file that you wish to use
|
74
|
+
def set_404 link
|
75
|
+
@page_404 = link
|
76
|
+
end
|
77
|
+
|
78
|
+
# Get the absolute file path for the 404 page to use for this VHost. May be nil.
|
79
|
+
def get_404
|
80
|
+
@page_404
|
81
|
+
end
|
82
|
+
|
83
|
+
# Add a Document Root for this VHost. This document root will contain all of your
|
84
|
+
# public files that can be served by the vhost.
|
85
|
+
# Params:
|
86
|
+
# +dir+:: The directory for the Document Root
|
87
|
+
# +priority+:: The priority for the directory. If multiple Handlers respond to the target
|
88
|
+
# URI, the one with the highest priority will be chosen. Default: 50
|
89
|
+
def root dir, priority=50
|
90
|
+
self << Waitress::DirHandler.new(File.expand_path(dir), priority)
|
91
|
+
end
|
92
|
+
|
93
|
+
# Internal
|
94
|
+
def set_configure conf
|
95
|
+
@configuration = conf
|
96
|
+
end
|
97
|
+
|
98
|
+
# Set the directory in which Libraries are contained. Libraries are specially handled by
|
99
|
+
# waitress to be loaded into .wrb files and handlers. Default: "libs/"
|
100
|
+
# This file will contain your CSS, JS and any other libraries.
|
101
|
+
def libdir name
|
102
|
+
@libdir = File.expand_path(name)
|
103
|
+
end
|
104
|
+
|
105
|
+
# Change the uri that Libraries should be accessed from. Libraries present in the "libs/"
|
106
|
+
# directory are served from this URI. This URI is relative to the base "/" uri for the VirtualHost,
|
107
|
+
# for example, a LibUri of "libraries/" (the default) will be accessed by "your.site/libraries/lib_name"
|
108
|
+
def liburi name=nil
|
109
|
+
@liburi = name unless name.nil?
|
110
|
+
@liburi
|
111
|
+
end
|
112
|
+
|
113
|
+
# Bind a library to a name. By default, when libraries are found in the css/ and js/ folders of your
|
114
|
+
# lib directory, they are loaded under the lib name of "filename.type", with type being .css or .js.
|
115
|
+
# By binding a library, you can give this a different name based on the file found by regular expression,
|
116
|
+
# for example, binding /jquery/ to "jquery" will match any filenames containing 'jquery', meaning the full
|
117
|
+
# name of 'jquery-ver.sion' is matched, and can be accessed simply by "jquery"
|
118
|
+
# Params:
|
119
|
+
# +pattern+:: The regular expression to check files against. This will match the first file it finds with
|
120
|
+
# the expression to the library.
|
121
|
+
# +type+:: The type of file. This should be a symbol of either :js or :css, or any other supported lib types
|
122
|
+
# +name+:: The new name to reference this library by
|
123
|
+
# +options+:: Any extra options to use when loading the library (to be used in the future)
|
124
|
+
def bind_lib pattern, type, name, *options
|
125
|
+
lib = { :pattern => pattern, :bindtype => type, :options => options}
|
126
|
+
@libraries[name.to_sym] = lib
|
127
|
+
end
|
128
|
+
|
129
|
+
# Define a combination of libraries. Calling this method will bind all the libaries listed under one common
|
130
|
+
# name that can be loaded into .wrb files and handlers using combo(). This is used to load a collection of
|
131
|
+
# libraries simply and easily without repeating lib() methods.
|
132
|
+
# Params:
|
133
|
+
# +name+:: The desired name of the combo
|
134
|
+
# +targets+:: A list of all the libraries to bind to this combo
|
135
|
+
def lib_combo name, *targets
|
136
|
+
@combos[name.to_sym] = targets
|
137
|
+
targets
|
138
|
+
end
|
139
|
+
|
140
|
+
# Internal
|
141
|
+
def parse_libraries
|
142
|
+
self << Waitress::LibraryHandler.new(@libraries, @libdir, @liburi, self)
|
143
|
+
end
|
144
|
+
|
145
|
+
# Internal (called on Server Start)
|
146
|
+
def on_server_start srv
|
147
|
+
parse_libraries
|
148
|
+
end
|
149
|
+
|
150
|
+
# Used to define the load path for the VHost. The Load Path defines what files can be
|
151
|
+
# included from outside of the public web directory, such as database backend or
|
152
|
+
# authentication. These files are not available to the public, but can be included by
|
153
|
+
# the .wrb files.
|
154
|
+
# Params:
|
155
|
+
# +dir+: The directory to use for the loadpath. If a string is provided, it is added,
|
156
|
+
# however, if an array is provided, it will override with the array.
|
157
|
+
def includes dir
|
158
|
+
if dir.is_a? String
|
159
|
+
load_path << File.expand_path(dir)
|
160
|
+
elsif dir.is_a? Array
|
161
|
+
load_path = dir.map { |x| File.expand_path(x) }
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
# Cancel the current request (don't serve the response)
|
166
|
+
def cancel_request
|
167
|
+
@cancelled = true
|
168
|
+
end
|
169
|
+
|
170
|
+
# Define a rewrite rule. A rewrite rule is used to rewrite a URL's path
|
171
|
+
# before it is handled. Keep in mind that this does not function for a query string,
|
172
|
+
# which should instead be handled with the on_request event.
|
173
|
+
# Params;
|
174
|
+
# +pattern+:: The pattern to match the URL against
|
175
|
+
# +newpath+:: The new path to replace the matched pattern with. This can include
|
176
|
+
# capture groups through the use of \\1 (where 1 is the capture group number)
|
177
|
+
def rewrite pattern, newpath
|
178
|
+
on_request do |request, vhost|
|
179
|
+
request.path = request.path.gsub(pattern, newpath)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
# Internal (matches requests)
|
184
|
+
def handle_request request, client
|
185
|
+
@cancelled = false
|
186
|
+
|
187
|
+
response = Waitress::Response.new
|
188
|
+
|
189
|
+
$REQUEST = request
|
190
|
+
$RESPONSE = response
|
191
|
+
$VHOST = self
|
192
|
+
|
193
|
+
@on_request.each { |x| x.call(request, self, client) }
|
194
|
+
|
195
|
+
unless @cancelled
|
196
|
+
match = nil
|
197
|
+
if @resources && Waitress::DirHandler.resources_handler.respond?(request, self)
|
198
|
+
match = Waitress::DirHandler.resources_handler
|
199
|
+
end
|
200
|
+
|
201
|
+
self.each do |handler|
|
202
|
+
match = handler if handler.respond?(request, self) && (match.nil? || handler.priority > match.priority)
|
203
|
+
end
|
204
|
+
|
205
|
+
if match.nil?
|
206
|
+
Waitress::Chef.error 404, request, response, client, self
|
207
|
+
else
|
208
|
+
match.serve! request, response, client, self
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
@after_request.each { |x| x.call(request, response, self, client) }
|
213
|
+
response.serve(client) unless (response.done? || client.closed?)
|
214
|
+
end
|
215
|
+
|
216
|
+
end
|
217
|
+
end
|
Binary file
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'waitress/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "waitress-core"
|
8
|
+
spec.version = Waitress::VERSION
|
9
|
+
spec.authors = ["Jaci Brunning"]
|
10
|
+
spec.email = ["jaci.brunning@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Waitress is a lightweight, fast Ruby Web Server with the ability to serve dynamic webpages, manage libraries and support for virtual hosts and much more}
|
13
|
+
spec.homepage = "http://github.com/JacisNonsense/Waitress"
|
14
|
+
|
15
|
+
spec.bindir = "bin"
|
16
|
+
spec.files = Dir.glob("lib/**/*") + ['Rakefile', 'waitress-core.gemspec', 'Gemfile', 'LICENSE'] + Dir.glob("ext/**/*")
|
17
|
+
spec.executables = ["waitress"]
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
spec.extensions << "ext/waitress_http11/extconf.rb"
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.9"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "rake-compiler"
|
24
|
+
spec.add_dependency "Go.rb", ">= 0.3.0"
|
25
|
+
spec.add_dependency "scon"
|
26
|
+
spec.add_dependency "configfile"
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: waitress-core
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jaci Brunning
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-09-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.9'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.9'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake-compiler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: Go.rb
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.3.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.3.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: scon
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: configfile
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description:
|
98
|
+
email:
|
99
|
+
- jaci.brunning@gmail.com
|
100
|
+
executables:
|
101
|
+
- waitress
|
102
|
+
extensions:
|
103
|
+
- ext/waitress_http11/extconf.rb
|
104
|
+
extra_rdoc_files: []
|
105
|
+
files:
|
106
|
+
- Gemfile
|
107
|
+
- LICENSE
|
108
|
+
- Rakefile
|
109
|
+
- bin/waitress
|
110
|
+
- ext/Thanks.md
|
111
|
+
- ext/waitress_http11/ext_help.h
|
112
|
+
- ext/waitress_http11/extconf.rb
|
113
|
+
- ext/waitress_http11/http11.c
|
114
|
+
- ext/waitress_http11/http11_parser.c
|
115
|
+
- ext/waitress_http11/http11_parser.h
|
116
|
+
- ext/waitress_http11/http11_parser.java.rl
|
117
|
+
- ext/waitress_http11/http11_parser.rl
|
118
|
+
- ext/waitress_http11/http11_parser_common.rl
|
119
|
+
- ext/waitress_http11/http11_wrb_parser.h
|
120
|
+
- lib/waitress.rb
|
121
|
+
- lib/waitress/chef.rb
|
122
|
+
- lib/waitress/configure.rb
|
123
|
+
- lib/waitress/handlers/dirhandler.rb
|
124
|
+
- lib/waitress/handlers/handler.rb
|
125
|
+
- lib/waitress/handlers/handler404.rb
|
126
|
+
- lib/waitress/handlers/libhandler.rb
|
127
|
+
- lib/waitress/kernel.rb
|
128
|
+
- lib/waitress/parse/query.rb
|
129
|
+
- lib/waitress/request.rb
|
130
|
+
- lib/waitress/resources/default_config.rb
|
131
|
+
- lib/waitress/resources/http/404.html
|
132
|
+
- lib/waitress/resources/http/css/hack.css
|
133
|
+
- lib/waitress/resources/http/css/waitress.css
|
134
|
+
- lib/waitress/resources/http/fonts/eot/latin/hack-bold-latin-webfont.eot
|
135
|
+
- lib/waitress/resources/http/fonts/eot/latin/hack-bolditalic-latin-webfont.eot
|
136
|
+
- lib/waitress/resources/http/fonts/eot/latin/hack-italic-latin-webfont.eot
|
137
|
+
- lib/waitress/resources/http/fonts/eot/latin/hack-regular-latin-webfont.eot
|
138
|
+
- lib/waitress/resources/http/fonts/svg/latin/hack-bold-latin-webfont.svg
|
139
|
+
- lib/waitress/resources/http/fonts/svg/latin/hack-bolditalic-latin-webfont.svg
|
140
|
+
- lib/waitress/resources/http/fonts/svg/latin/hack-italic-latin-webfont.svg
|
141
|
+
- lib/waitress/resources/http/fonts/svg/latin/hack-regular-latin-webfont.svg
|
142
|
+
- lib/waitress/resources/http/fonts/web-ttf/latin/hack-bold-latin-webfont.ttf
|
143
|
+
- lib/waitress/resources/http/fonts/web-ttf/latin/hack-bolditalic-latin-webfont.ttf
|
144
|
+
- lib/waitress/resources/http/fonts/web-ttf/latin/hack-italic-latin-webfont.ttf
|
145
|
+
- lib/waitress/resources/http/fonts/web-ttf/latin/hack-regular-latin-webfont.ttf
|
146
|
+
- lib/waitress/resources/http/fonts/woff/latin/hack-bold-latin-webfont.woff
|
147
|
+
- lib/waitress/resources/http/fonts/woff/latin/hack-bolditalic-latin-webfont.woff
|
148
|
+
- lib/waitress/resources/http/fonts/woff/latin/hack-italic-latin-webfont.woff
|
149
|
+
- lib/waitress/resources/http/fonts/woff/latin/hack-regular-latin-webfont.woff
|
150
|
+
- lib/waitress/resources/http/fonts/woff2/latin/hack-bold-latin-webfont.woff2
|
151
|
+
- lib/waitress/resources/http/fonts/woff2/latin/hack-bolditalic-latin-webfont.woff2
|
152
|
+
- lib/waitress/resources/http/fonts/woff2/latin/hack-italic-latin-webfont.woff2
|
153
|
+
- lib/waitress/resources/http/fonts/woff2/latin/hack-regular-latin-webfont.woff2
|
154
|
+
- lib/waitress/resources/http/img/404.png
|
155
|
+
- lib/waitress/resources/http/index.html
|
156
|
+
- lib/waitress/response.rb
|
157
|
+
- lib/waitress/server.rb
|
158
|
+
- lib/waitress/util.rb
|
159
|
+
- lib/waitress/version.rb
|
160
|
+
- lib/waitress/vhost.rb
|
161
|
+
- lib/waitress_http11.so
|
162
|
+
- waitress-core.gemspec
|
163
|
+
homepage: http://github.com/JacisNonsense/Waitress
|
164
|
+
licenses: []
|
165
|
+
metadata: {}
|
166
|
+
post_install_message:
|
167
|
+
rdoc_options: []
|
168
|
+
require_paths:
|
169
|
+
- lib
|
170
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
requirements: []
|
181
|
+
rubyforge_project:
|
182
|
+
rubygems_version: 2.4.5
|
183
|
+
signing_key:
|
184
|
+
specification_version: 4
|
185
|
+
summary: Waitress is a lightweight, fast Ruby Web Server with the ability to serve
|
186
|
+
dynamic webpages, manage libraries and support for virtual hosts and much more
|
187
|
+
test_files: []
|