puma 2.7.0 → 3.1.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puma might be problematic. Click here for more details.
- checksums.yaml +5 -13
- data/DEPLOYMENT.md +91 -0
- data/Gemfile +3 -2
- data/History.txt +624 -1
- data/Manifest.txt +15 -3
- data/README.md +129 -14
- data/Rakefile +3 -3
- data/bin/puma-wild +31 -0
- data/bin/pumactl +1 -1
- data/docs/nginx.md +1 -1
- data/docs/signals.md +43 -0
- data/ext/puma_http11/extconf.rb +7 -2
- data/ext/puma_http11/http11_parser.java.rl +5 -5
- data/ext/puma_http11/io_buffer.c +1 -1
- data/ext/puma_http11/mini_ssl.c +233 -18
- data/ext/puma_http11/org/jruby/puma/Http11.java +12 -3
- data/ext/puma_http11/org/jruby/puma/Http11Parser.java +39 -39
- data/ext/puma_http11/org/jruby/puma/MiniSSL.java +245 -195
- data/ext/puma_http11/puma_http11.c +12 -4
- data/lib/puma.rb +1 -0
- data/lib/puma/app/status.rb +7 -0
- data/lib/puma/binder.rb +108 -39
- data/lib/puma/capistrano.rb +23 -6
- data/lib/puma/cli.rb +141 -446
- data/lib/puma/client.rb +48 -1
- data/lib/puma/cluster.rb +207 -58
- data/lib/puma/commonlogger.rb +107 -0
- data/lib/puma/configuration.rb +262 -235
- data/lib/puma/const.rb +97 -14
- data/lib/puma/control_cli.rb +85 -77
- data/lib/puma/convenient.rb +23 -0
- data/lib/puma/daemon_ext.rb +11 -4
- data/lib/puma/detect.rb +8 -1
- data/lib/puma/dsl.rb +456 -0
- data/lib/puma/events.rb +35 -18
- data/lib/puma/jruby_restart.rb +1 -1
- data/lib/puma/launcher.rb +399 -0
- data/lib/puma/minissl.rb +49 -20
- data/lib/puma/null_io.rb +15 -0
- data/lib/puma/plugin.rb +104 -0
- data/lib/puma/plugin/tmp_restart.rb +35 -0
- data/lib/puma/rack/backports/uri/common_18.rb +56 -0
- data/lib/puma/rack/backports/uri/common_192.rb +52 -0
- data/lib/puma/rack/backports/uri/common_193.rb +29 -0
- data/lib/puma/rack/builder.rb +295 -0
- data/lib/puma/rack/urlmap.rb +90 -0
- data/lib/puma/reactor.rb +14 -1
- data/lib/puma/runner.rb +35 -17
- data/lib/puma/server.rb +161 -58
- data/lib/puma/single.rb +15 -10
- data/lib/puma/state_file.rb +29 -0
- data/lib/puma/thread_pool.rb +88 -13
- data/lib/puma/util.rb +123 -0
- data/lib/rack/handler/puma.rb +35 -29
- data/puma.gemspec +2 -4
- data/tools/jungle/init.d/README.md +2 -2
- data/tools/jungle/init.d/puma +69 -7
- data/tools/jungle/upstart/puma.conf +8 -2
- metadata +51 -71
- data/COPYING +0 -55
- data/TODO +0 -5
- data/lib/puma/rack_patch.rb +0 -45
- data/test/test_app_status.rb +0 -92
- data/test/test_cli.rb +0 -173
- data/test/test_config.rb +0 -16
- data/test/test_http10.rb +0 -27
- data/test/test_http11.rb +0 -145
- data/test/test_integration.rb +0 -165
- data/test/test_iobuffer.rb +0 -38
- data/test/test_minissl.rb +0 -25
- data/test/test_null_io.rb +0 -31
- data/test/test_persistent.rb +0 -238
- data/test/test_puma_server.rb +0 -292
- data/test/test_rack_handler.rb +0 -10
- data/test/test_rack_server.rb +0 -141
- data/test/test_tcp_rack.rb +0 -42
- data/test/test_thread_pool.rb +0 -156
- data/test/test_unix_socket.rb +0 -39
- data/test/test_ws.rb +0 -89
data/puma.gemspec
CHANGED
@@ -17,12 +17,13 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
18
18
|
s.authors = ["Evan Phoenix"]
|
19
19
|
s.date = `git log --pretty="%ai" -n 1`.split(" ").first
|
20
|
-
s.description = "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications. Puma is intended for use in both development and production environments.
|
20
|
+
s.description = "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications. Puma is intended for use in both development and production environments. It's great for highly concurrent Ruby implementations such as Rubinius and JRuby as well as as providing process worker support to support CRuby well."
|
21
21
|
s.email = ["evan@phx.io"]
|
22
22
|
s.executables = ["puma", "pumactl"]
|
23
23
|
s.extensions = ["ext/puma_http11/extconf.rb"]
|
24
24
|
s.files = `git ls-files`.split($/)
|
25
25
|
s.homepage = "http://puma.io"
|
26
|
+
s.license = "BSD-3-Clause"
|
26
27
|
s.rdoc_options = ["--main", "README.md"]
|
27
28
|
s.require_paths = ["lib"]
|
28
29
|
s.required_ruby_version = Gem::Requirement.new(">= 1.8.7")
|
@@ -35,18 +36,15 @@ Gem::Specification.new do |s|
|
|
35
36
|
s.specification_version = 3
|
36
37
|
|
37
38
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
38
|
-
s.add_runtime_dependency(%q<rack>, ["< 2.0", ">= 1.1"])
|
39
39
|
s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
|
40
40
|
s.add_development_dependency(%q<rake-compiler>, ["~> 0.8.0"])
|
41
41
|
s.add_development_dependency(%q<hoe>, ["~> 3.6"])
|
42
42
|
else
|
43
|
-
s.add_dependency(%q<rack>, ["< 2.0", ">= 1.1"])
|
44
43
|
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
45
44
|
s.add_dependency(%q<rake-compiler>, ["~> 0.8.0"])
|
46
45
|
s.add_dependency(%q<hoe>, ["~> 3.6"])
|
47
46
|
end
|
48
47
|
else
|
49
|
-
s.add_dependency(%q<rack>, ["< 2.0", ">= 1.1"])
|
50
48
|
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
51
49
|
s.add_dependency(%q<rake-compiler>, ["~> 0.8.0"])
|
52
50
|
s.add_dependency(%q<hoe>, ["~> 3.6"])
|
@@ -26,12 +26,12 @@ Puma apps are held in /etc/puma.conf by default. It's mainly a CSV file and ever
|
|
26
26
|
|
27
27
|
You can add an instance by editing the file or running the following command:
|
28
28
|
|
29
|
-
sudo /etc/init.d/puma add /path/to/app user /path/to/app/config/puma.rb /path/to/app/
|
29
|
+
sudo /etc/init.d/puma add /path/to/app user /path/to/app/config/puma.rb /path/to/app/log/puma.log
|
30
30
|
|
31
31
|
The config and log paths are optional parameters and default to:
|
32
32
|
|
33
33
|
* config: /path/to/app/*config/puma.rb*
|
34
|
-
* log: /path/to/app/*
|
34
|
+
* log: /path/to/app/*log/puma.log*
|
35
35
|
|
36
36
|
To remove an app, simply delete the line from the config file or run:
|
37
37
|
|
data/tools/jungle/init.d/puma
CHANGED
@@ -23,6 +23,7 @@ SCRIPTNAME=/etc/init.d/$NAME
|
|
23
23
|
CONFIG=/etc/puma.conf
|
24
24
|
JUNGLE=`cat $CONFIG`
|
25
25
|
RUNPUMA=/usr/local/bin/run-puma
|
26
|
+
USE_LOCAL_BUNDLE=0
|
26
27
|
|
27
28
|
# Load the VERBOSE setting and other rcS variables
|
28
29
|
. /lib/init/vars.sh
|
@@ -47,7 +48,8 @@ do_start() {
|
|
47
48
|
if [ "$log_file" = "" ]; then
|
48
49
|
log_file="$dir/log/puma.log"
|
49
50
|
fi
|
50
|
-
|
51
|
+
environment=`echo $i | cut -d , -f 5`
|
52
|
+
do_start_one $dir $user $config_file $log_file $environment
|
51
53
|
done
|
52
54
|
}
|
53
55
|
|
@@ -57,12 +59,12 @@ do_start_one() {
|
|
57
59
|
PID=`cat $PIDFILE`
|
58
60
|
# If the puma isn't running, run it, otherwise restart it.
|
59
61
|
if [ "`ps -A -o pid= | grep -c $PID`" -eq 0 ]; then
|
60
|
-
do_start_one_do $1 $2 $3 $4
|
62
|
+
do_start_one_do $1 $2 $3 $4 $5
|
61
63
|
else
|
62
64
|
do_restart_one $1
|
63
65
|
fi
|
64
66
|
else
|
65
|
-
do_start_one_do $1 $2 $3 $4
|
67
|
+
do_start_one_do $1 $2 $3 $4 $5
|
66
68
|
fi
|
67
69
|
}
|
68
70
|
|
@@ -70,6 +72,14 @@ do_start_one_do() {
|
|
70
72
|
log_daemon_msg "--> Woke up puma $1"
|
71
73
|
log_daemon_msg "user $2"
|
72
74
|
log_daemon_msg "log to $4"
|
75
|
+
|
76
|
+
if [ ! -z "$5" ]; then
|
77
|
+
for e in $(echo "$5" | tr ';' '\n'); do
|
78
|
+
log_daemon_msg "environment $e"
|
79
|
+
v=${e%%\=*} ; eval "$e" ; export $v
|
80
|
+
done
|
81
|
+
fi
|
82
|
+
|
73
83
|
start-stop-daemon --verbose --start --chdir $1 --chuid $2 --background --exec $RUNPUMA -- $1 $3 $4
|
74
84
|
}
|
75
85
|
|
@@ -96,7 +106,11 @@ do_stop_one() {
|
|
96
106
|
log_daemon_msg "---> Puma $1 isn't running."
|
97
107
|
else
|
98
108
|
log_daemon_msg "---> About to kill PID `cat $PIDFILE`"
|
99
|
-
|
109
|
+
if [ "$USE_LOCAL_BUNDLE" -eq 1 ]; then
|
110
|
+
cd $1 && bundle exec pumactl --state $STATEFILE stop
|
111
|
+
else
|
112
|
+
pumactl --state $STATEFILE stop
|
113
|
+
fi
|
100
114
|
# Many daemons don't delete their pidfiles when they exit.
|
101
115
|
rm -f $PIDFILE $STATEFILE
|
102
116
|
fi
|
@@ -126,7 +140,11 @@ do_restart_one() {
|
|
126
140
|
|
127
141
|
if [ -e $PIDFILE ]; then
|
128
142
|
log_daemon_msg "--> About to restart puma $1"
|
129
|
-
|
143
|
+
if [ "$USE_LOCAL_BUNDLE" -eq 1 ]; then
|
144
|
+
cd $1 && bundle exec pumactl --state $dir/tmp/puma/state restart
|
145
|
+
else
|
146
|
+
pumactl --state $dir/tmp/puma/state restart
|
147
|
+
fi
|
130
148
|
# kill -s USR2 `cat $PIDFILE`
|
131
149
|
# TODO Check if process exist
|
132
150
|
else
|
@@ -140,7 +158,8 @@ do_restart_one() {
|
|
140
158
|
if [ "$log_file" = "" ]; then
|
141
159
|
log_file="$dir/log/puma.log"
|
142
160
|
fi
|
143
|
-
|
161
|
+
environment=`echo $i | cut -d , -f 5`
|
162
|
+
do_start_one $dir $user $config_file $log_file $environment
|
144
163
|
fi
|
145
164
|
return 0
|
146
165
|
}
|
@@ -165,7 +184,11 @@ do_status_one() {
|
|
165
184
|
|
166
185
|
if [ -e $PIDFILE ]; then
|
167
186
|
log_daemon_msg "--> About to status puma $1"
|
168
|
-
|
187
|
+
if [ "$USE_LOCAL_BUNDLE" -eq 1 ]; then
|
188
|
+
cd $1 && bundle exec pumactl --state $dir/tmp/puma/state stats
|
189
|
+
else
|
190
|
+
pumactl --state $dir/tmp/puma/state stats
|
191
|
+
fi
|
169
192
|
# kill -s USR2 `cat $PIDFILE`
|
170
193
|
# TODO Check if process exist
|
171
194
|
else
|
@@ -209,6 +232,11 @@ do_add() {
|
|
209
232
|
str="$str,$4"
|
210
233
|
fi
|
211
234
|
|
235
|
+
# Environment variables
|
236
|
+
if [ "$5" != "" ]; then
|
237
|
+
str="$str,$5"
|
238
|
+
fi
|
239
|
+
|
212
240
|
# Add it to the jungle
|
213
241
|
echo $str >> $CONFIG
|
214
242
|
log_daemon_msg "Added a Puma to the jungle: $str. You still have to start it though."
|
@@ -226,6 +254,40 @@ do_remove() {
|
|
226
254
|
fi
|
227
255
|
}
|
228
256
|
|
257
|
+
config_bundler() {
|
258
|
+
HOME="$(eval echo ~$(id -un))"
|
259
|
+
if [ -d "/usr/local/rbenv/bin" ]; then
|
260
|
+
PATH="/usr/local/rbenv/bin:/usr/local/rbenv/shims:$PATH"
|
261
|
+
eval "$(rbenv init -)"
|
262
|
+
USE_LOCAL_BUNDLE=1
|
263
|
+
return 0
|
264
|
+
elif [ -d "$HOME/.rbenv/bin" ]; then
|
265
|
+
PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
|
266
|
+
eval "$(rbenv init -)"
|
267
|
+
USE_LOCAL_BUNDLE=1
|
268
|
+
return 0
|
269
|
+
# TODO: test rvm
|
270
|
+
# elif [ -f /etc/profile.d/rvm.sh ]; then
|
271
|
+
# source /etc/profile.d/rvm.sh
|
272
|
+
# elif [ -f /usr/local/rvm/scripts/rvm ]; then
|
273
|
+
# source /etc/profile.d/rvm.sh
|
274
|
+
# elif [ -f "$HOME/.rvm/scripts/rvm" ]; then
|
275
|
+
# source "$HOME/.rvm/scripts/rvm"
|
276
|
+
# TODO: don't know what to do with chruby
|
277
|
+
# elif [ -f /usr/local/share/chruby/chruby.sh ]; then
|
278
|
+
# source /usr/local/share/chruby/chruby.sh
|
279
|
+
# if [ -f /usr/local/share/chruby/auto.sh ]; then
|
280
|
+
# source /usr/local/share/chruby/auto.sh
|
281
|
+
# fi
|
282
|
+
# if you aren't using auto, set your version here
|
283
|
+
# chruby 2.0.0
|
284
|
+
fi
|
285
|
+
|
286
|
+
return 1
|
287
|
+
}
|
288
|
+
|
289
|
+
config_bundler
|
290
|
+
|
229
291
|
case "$1" in
|
230
292
|
start)
|
231
293
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
@@ -34,12 +34,18 @@ script
|
|
34
34
|
# respawn as bash so we can source in rbenv/rvm
|
35
35
|
# quoted heredoc to tell /bin/sh not to interpret
|
36
36
|
# variables
|
37
|
+
|
38
|
+
# source ENV variables manually as Upstart doesn't, eg:
|
39
|
+
#. /etc/environment
|
40
|
+
|
37
41
|
exec /bin/bash <<'EOT'
|
38
42
|
# set HOME to the setuid user's home, there doesn't seem to be a better, portable way
|
39
43
|
export HOME="$(eval echo ~$(id -un))"
|
40
44
|
|
41
|
-
if [ -d "
|
42
|
-
export PATH="
|
45
|
+
if [ -d "/usr/local/rbenv/bin" ]; then
|
46
|
+
export PATH="/usr/local/rbenv/bin:/usr/local/rbenv/shims:$PATH"
|
47
|
+
elif [ -d "$HOME/.rbenv/bin" ]; then
|
48
|
+
export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
|
43
49
|
elif [ -f /etc/profile.d/rvm.sh ]; then
|
44
50
|
source /etc/profile.d/rvm.sh
|
45
51
|
elif [ -f /usr/local/rvm/scripts/rvm ]; then
|
metadata
CHANGED
@@ -1,77 +1,77 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Phoenix
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rdoc
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.1'
|
20
|
-
- - <
|
17
|
+
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
23
|
-
type: :
|
19
|
+
version: '4.0'
|
20
|
+
type: :development
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.1'
|
30
|
-
- - <
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
26
|
+
version: '4.0'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
28
|
+
name: rack
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
|
-
- -
|
31
|
+
- - ">="
|
38
32
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
33
|
+
version: '1.1'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '2.0'
|
40
37
|
type: :development
|
41
38
|
prerelease: false
|
42
39
|
version_requirements: !ruby/object:Gem::Requirement
|
43
40
|
requirements:
|
44
|
-
- -
|
41
|
+
- - ">="
|
45
42
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
43
|
+
version: '1.1'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '2.0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake-compiler
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - ~>
|
51
|
+
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0.8
|
53
|
+
version: '0.8'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - ~>
|
58
|
+
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0.8
|
60
|
+
version: '0.8'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: hoe
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- - ~>
|
65
|
+
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '3.
|
67
|
+
version: '3.14'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- - ~>
|
72
|
+
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '3.
|
74
|
+
version: '3.14'
|
75
75
|
description: Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server
|
76
76
|
for Ruby/Rack applications. Puma is intended for use in both development and production
|
77
77
|
environments. In order to get the best throughput, it is highly recommended that
|
@@ -84,27 +84,30 @@ executables:
|
|
84
84
|
extensions:
|
85
85
|
- ext/puma_http11/extconf.rb
|
86
86
|
extra_rdoc_files:
|
87
|
+
- DEPLOYMENT.md
|
87
88
|
- History.txt
|
88
89
|
- Manifest.txt
|
89
90
|
- README.md
|
90
91
|
- docs/config.md
|
91
92
|
- docs/nginx.md
|
93
|
+
- docs/signals.md
|
92
94
|
- tools/jungle/README.md
|
93
95
|
- tools/jungle/init.d/README.md
|
94
96
|
- tools/jungle/upstart/README.md
|
95
97
|
files:
|
96
|
-
-
|
98
|
+
- DEPLOYMENT.md
|
97
99
|
- Gemfile
|
98
100
|
- History.txt
|
99
101
|
- LICENSE
|
100
102
|
- Manifest.txt
|
101
103
|
- README.md
|
102
104
|
- Rakefile
|
103
|
-
- TODO
|
104
105
|
- bin/puma
|
106
|
+
- bin/puma-wild
|
105
107
|
- bin/pumactl
|
106
108
|
- docs/config.md
|
107
109
|
- docs/nginx.md
|
110
|
+
- docs/signals.md
|
108
111
|
- ext/puma_http11/PumaHttp11Service.java
|
109
112
|
- ext/puma_http11/ext_help.h
|
110
113
|
- ext/puma_http11/extconf.rb
|
@@ -127,25 +130,36 @@ files:
|
|
127
130
|
- lib/puma/cli.rb
|
128
131
|
- lib/puma/client.rb
|
129
132
|
- lib/puma/cluster.rb
|
133
|
+
- lib/puma/commonlogger.rb
|
130
134
|
- lib/puma/compat.rb
|
131
135
|
- lib/puma/configuration.rb
|
132
136
|
- lib/puma/const.rb
|
133
137
|
- lib/puma/control_cli.rb
|
138
|
+
- lib/puma/convenient.rb
|
134
139
|
- lib/puma/daemon_ext.rb
|
135
140
|
- lib/puma/delegation.rb
|
136
141
|
- lib/puma/detect.rb
|
142
|
+
- lib/puma/dsl.rb
|
137
143
|
- lib/puma/events.rb
|
138
144
|
- lib/puma/io_buffer.rb
|
139
145
|
- lib/puma/java_io_buffer.rb
|
140
146
|
- lib/puma/jruby_restart.rb
|
147
|
+
- lib/puma/launcher.rb
|
141
148
|
- lib/puma/minissl.rb
|
142
149
|
- lib/puma/null_io.rb
|
150
|
+
- lib/puma/plugin.rb
|
151
|
+
- lib/puma/plugin/tmp_restart.rb
|
152
|
+
- lib/puma/rack/backports/uri/common_18.rb
|
153
|
+
- lib/puma/rack/backports/uri/common_192.rb
|
154
|
+
- lib/puma/rack/backports/uri/common_193.rb
|
155
|
+
- lib/puma/rack/builder.rb
|
156
|
+
- lib/puma/rack/urlmap.rb
|
143
157
|
- lib/puma/rack_default.rb
|
144
|
-
- lib/puma/rack_patch.rb
|
145
158
|
- lib/puma/reactor.rb
|
146
159
|
- lib/puma/runner.rb
|
147
160
|
- lib/puma/server.rb
|
148
161
|
- lib/puma/single.rb
|
162
|
+
- lib/puma/state_file.rb
|
149
163
|
- lib/puma/tcp_logger.rb
|
150
164
|
- lib/puma/thread_pool.rb
|
151
165
|
- lib/puma/util.rb
|
@@ -159,65 +173,31 @@ files:
|
|
159
173
|
- tools/jungle/upstart/puma-manager.conf
|
160
174
|
- tools/jungle/upstart/puma.conf
|
161
175
|
- tools/trickletest.rb
|
162
|
-
- test/test_app_status.rb
|
163
|
-
- test/test_cli.rb
|
164
|
-
- test/test_config.rb
|
165
|
-
- test/test_http10.rb
|
166
|
-
- test/test_http11.rb
|
167
|
-
- test/test_integration.rb
|
168
|
-
- test/test_iobuffer.rb
|
169
|
-
- test/test_minissl.rb
|
170
|
-
- test/test_null_io.rb
|
171
|
-
- test/test_persistent.rb
|
172
|
-
- test/test_puma_server.rb
|
173
|
-
- test/test_rack_handler.rb
|
174
|
-
- test/test_rack_server.rb
|
175
|
-
- test/test_tcp_rack.rb
|
176
|
-
- test/test_thread_pool.rb
|
177
|
-
- test/test_unix_socket.rb
|
178
|
-
- test/test_ws.rb
|
179
176
|
homepage: http://puma.io
|
180
177
|
licenses:
|
181
|
-
-
|
178
|
+
- BSD-3-Clause
|
182
179
|
metadata: {}
|
183
180
|
post_install_message:
|
184
181
|
rdoc_options:
|
185
|
-
- --main
|
182
|
+
- "--main"
|
186
183
|
- README.md
|
187
184
|
require_paths:
|
188
185
|
- lib
|
189
186
|
required_ruby_version: !ruby/object:Gem::Requirement
|
190
187
|
requirements:
|
191
|
-
- -
|
188
|
+
- - ">="
|
192
189
|
- !ruby/object:Gem::Version
|
193
190
|
version: 1.8.7
|
194
191
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
195
192
|
requirements:
|
196
|
-
- -
|
193
|
+
- - ">="
|
197
194
|
- !ruby/object:Gem::Version
|
198
195
|
version: '0'
|
199
196
|
requirements: []
|
200
|
-
rubyforge_project:
|
201
|
-
rubygems_version: 2.1
|
197
|
+
rubyforge_project:
|
198
|
+
rubygems_version: 2.5.1
|
202
199
|
signing_key:
|
203
200
|
specification_version: 4
|
204
201
|
summary: Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for
|
205
202
|
Ruby/Rack applications
|
206
|
-
test_files:
|
207
|
-
- test/test_app_status.rb
|
208
|
-
- test/test_cli.rb
|
209
|
-
- test/test_config.rb
|
210
|
-
- test/test_http10.rb
|
211
|
-
- test/test_http11.rb
|
212
|
-
- test/test_integration.rb
|
213
|
-
- test/test_iobuffer.rb
|
214
|
-
- test/test_minissl.rb
|
215
|
-
- test/test_null_io.rb
|
216
|
-
- test/test_persistent.rb
|
217
|
-
- test/test_puma_server.rb
|
218
|
-
- test/test_rack_handler.rb
|
219
|
-
- test/test_rack_server.rb
|
220
|
-
- test/test_tcp_rack.rb
|
221
|
-
- test/test_thread_pool.rb
|
222
|
-
- test/test_unix_socket.rb
|
223
|
-
- test/test_ws.rb
|
203
|
+
test_files: []
|