rack-app 5.5.1 → 5.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/rack/app/constants.rb +2 -0
- data/lib/rack/app/constants/http_status_codes.rb +65 -0
- data/lib/rack/app/instance_methods.rb +4 -2
- data/lib/rack/app/instance_methods/core.rb +5 -2
- data/lib/rack/app/instance_methods/http_status.rb +10 -0
- data/lib/rack/app/instance_methods/{http_control.rb → redirect_to.rb} +3 -3
- data/lib/rack/app/instance_methods/serve_file.rb +1 -1
- data/lib/rack/app/instance_methods/streaming.rb +1 -1
- data/lib/rack/app/middlewares/hooks.rb +1 -0
- data/lib/rack/app/middlewares/hooks/after.rb +3 -10
- data/lib/rack/app/middlewares/hooks/base.rb +21 -0
- data/lib/rack/app/middlewares/hooks/before.rb +2 -10
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d01a4b973a8a3b61c3fac65895cea447902368e0
|
4
|
+
data.tar.gz: 1661ab7a248eeb8d7df8cc65f23348ea9cf7c666
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0044dac4f6b279fd9f3d00d43bbba4ee86791fe40e7028999d8dbe1faf1164fa3c5918491e6ad2c3a7d76ed44c69e70033b7de8f41b73eae3067ff8e98fecc1f
|
7
|
+
data.tar.gz: f452f8899a4067484d63574ca9655b172813af4b7787865a846db8e5b37d0988a5f2487393fa3bdff209a6017b57e8b1a91e281eeae79b8770b1bbeb34ce2cec
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
5.
|
1
|
+
5.6.0
|
data/lib/rack/app/constants.rb
CHANGED
@@ -0,0 +1,65 @@
|
|
1
|
+
module Rack::App::Constants
|
2
|
+
HTTP_STATUS_CODES = {
|
3
|
+
100 => "Continue",
|
4
|
+
101 => "Switching Protocols",
|
5
|
+
102 => "Processing (WebDAV; RFC 2518)",
|
6
|
+
200 => "OK",
|
7
|
+
201 => "Created",
|
8
|
+
202 => "Accepted",
|
9
|
+
203 => "Non-Authoritative Information (since HTTP/1.1)",
|
10
|
+
204 => "", # No Content
|
11
|
+
205 => "", # Reset Content
|
12
|
+
206 => "Partial Content (RFC 7233)",
|
13
|
+
207 => "Multi-Status (WebDAV; RFC 4918)",
|
14
|
+
208 => "Already Reported (WebDAV; RFC 5842)",
|
15
|
+
226 => "IM Used (RFC 3229)",
|
16
|
+
300 => "Multiple Choices",
|
17
|
+
301 => "Moved Permanently",
|
18
|
+
302 => "Found",
|
19
|
+
303 => "See Other (since HTTP/1.1)",
|
20
|
+
304 => "", # Not Modified (RFC 7232)
|
21
|
+
305 => "Use Proxy (since HTTP/1.1)",
|
22
|
+
306 => "Switch Proxy",
|
23
|
+
307 => "Temporary Redirect (since HTTP/1.1)",
|
24
|
+
308 => "Permanent Redirect (RFC 7538)",
|
25
|
+
400 => "Bad Request",
|
26
|
+
401 => "Unauthorized (RFC 7235)",
|
27
|
+
402 => "Payment Required",
|
28
|
+
403 => "Forbidden",
|
29
|
+
404 => "Not Found",
|
30
|
+
405 => "Method Not Allowed",
|
31
|
+
406 => "Not Acceptable",
|
32
|
+
407 => "Proxy Authentication Required (RFC 7235)",
|
33
|
+
408 => "Request Timeout",
|
34
|
+
409 => "Conflict",
|
35
|
+
410 => "Gone",
|
36
|
+
411 => "Length Required",
|
37
|
+
412 => "Precondition Failed (RFC 7232)",
|
38
|
+
413 => "Payload Too Large (RFC 7231)",
|
39
|
+
414 => "URI Too Long (RFC 7231)",
|
40
|
+
415 => "Unsupported Media Type",
|
41
|
+
416 => "Range Not Satisfiable (RFC 7233)",
|
42
|
+
417 => "Expectation Failed",
|
43
|
+
418 => "I'm a teapot (RFC 2324)",
|
44
|
+
421 => "Misdirected Request (RFC 7540)",
|
45
|
+
422 => "Unprocessable Entity (WebDAV; RFC 4918)",
|
46
|
+
423 => "Locked (WebDAV; RFC 4918)",
|
47
|
+
424 => "Failed Dependency (WebDAV; RFC 4918)",
|
48
|
+
426 => "Upgrade Required",
|
49
|
+
428 => "Precondition Required (RFC 6585)",
|
50
|
+
429 => "Too Many Requests (RFC 6585)",
|
51
|
+
431 => "Request Header Fields Too Large (RFC 6585)",
|
52
|
+
451 => "Unavailable For Legal Reasons",
|
53
|
+
500 => "Internal Server Error",
|
54
|
+
501 => "Not Implemented",
|
55
|
+
502 => "Bad Gateway",
|
56
|
+
503 => "Service Unavailable",
|
57
|
+
504 => "Gateway Timeout",
|
58
|
+
505 => "HTTP Version Not Supported",
|
59
|
+
506 => "Variant Also Negotiates (RFC 2295)",
|
60
|
+
507 => "Insufficient Storage (WebDAV; RFC 4918)",
|
61
|
+
508 => "Loop Detected (WebDAV; RFC 5842)",
|
62
|
+
510 => "Not Extended (RFC 2774)",
|
63
|
+
511 => "Network Authentication Required (RFC 6585)",
|
64
|
+
}.freeze
|
65
|
+
end
|
@@ -1,13 +1,15 @@
|
|
1
1
|
module Rack::App::InstanceMethods
|
2
2
|
|
3
3
|
require 'rack/app/instance_methods/core'
|
4
|
-
require 'rack/app/instance_methods/
|
4
|
+
require 'rack/app/instance_methods/http_status'
|
5
|
+
require 'rack/app/instance_methods/redirect_to'
|
5
6
|
require 'rack/app/instance_methods/payload'
|
6
7
|
require 'rack/app/instance_methods/serve_file'
|
7
8
|
require 'rack/app/instance_methods/streaming'
|
8
9
|
|
9
10
|
include Rack::App::InstanceMethods::Core
|
10
|
-
include Rack::App::InstanceMethods::
|
11
|
+
include Rack::App::InstanceMethods::HTTPStatus
|
12
|
+
include Rack::App::InstanceMethods::RedirectTo
|
11
13
|
include Rack::App::InstanceMethods::Payload
|
12
14
|
include Rack::App::InstanceMethods::ServeFile
|
13
15
|
include Rack::App::InstanceMethods::Streaming
|
@@ -18,8 +18,11 @@ module Rack::App::InstanceMethods::Core
|
|
18
18
|
@response || raise("response object is not set for #{self.class}")
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
22
|
-
throw(:rack_response,
|
21
|
+
def finish!(rack_response=response)
|
22
|
+
throw(:rack_response, rack_response)
|
23
23
|
end
|
24
24
|
|
25
|
+
alias finish_response finish!
|
26
|
+
Rack::App::Utils.deprecate(self, :finish_response, :finish!, 2016,9)
|
27
|
+
|
25
28
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module Rack::App::InstanceMethods::
|
1
|
+
module Rack::App::InstanceMethods::RedirectTo
|
2
2
|
|
3
3
|
def redirect_to(url, params={})
|
4
4
|
|
@@ -12,8 +12,8 @@ module Rack::App::InstanceMethods::HttpControl
|
|
12
12
|
response.status = 301
|
13
13
|
response.headers.merge!({'Location' => url})
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
finish!
|
16
|
+
|
17
17
|
end
|
18
18
|
|
19
19
|
end
|
@@ -1,14 +1,7 @@
|
|
1
|
-
class Rack::App::Middlewares::Hooks::After
|
2
|
-
|
3
|
-
def initialize(app, hook_block)
|
4
|
-
@app = app
|
5
|
-
@hook_block = hook_block
|
6
|
-
end
|
7
|
-
|
1
|
+
class Rack::App::Middlewares::Hooks::After < Rack::App::Middlewares::Hooks::Base
|
8
2
|
def call(env)
|
9
3
|
response = @app.call(env)
|
10
|
-
|
11
|
-
return response
|
4
|
+
|
5
|
+
return execute_hook(env) || response
|
12
6
|
end
|
13
|
-
|
14
7
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Rack::App::Middlewares::Hooks::Base
|
2
|
+
|
3
|
+
def initialize(app, hook_block)
|
4
|
+
@app = app
|
5
|
+
@hook_block = hook_block
|
6
|
+
end
|
7
|
+
|
8
|
+
def call(env)
|
9
|
+
raise(NotImplementedError)
|
10
|
+
end
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def execute_hook(env)
|
15
|
+
catch :rack_response do
|
16
|
+
env[Rack::App::Constants::ENV::REQUEST_HANDLER].instance_exec(&@hook_block)
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -1,13 +1,5 @@
|
|
1
|
-
class Rack::App::Middlewares::Hooks::Before
|
2
|
-
|
3
|
-
def initialize(app, hook_block)
|
4
|
-
@app = app
|
5
|
-
@hook_block = hook_block
|
6
|
-
end
|
7
|
-
|
1
|
+
class Rack::App::Middlewares::Hooks::Before < Rack::App::Middlewares::Hooks::Base
|
8
2
|
def call(env)
|
9
|
-
env
|
10
|
-
@app.call(env)
|
3
|
+
execute_hook(env) || @app.call(env)
|
11
4
|
end
|
12
|
-
|
13
5
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Luzsi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- lib/rack/app/cli/fetcher/server.rb
|
106
106
|
- lib/rack/app/cli/runner.rb
|
107
107
|
- lib/rack/app/constants.rb
|
108
|
+
- lib/rack/app/constants/http_status_codes.rb
|
108
109
|
- lib/rack/app/endpoint.rb
|
109
110
|
- lib/rack/app/endpoint/builder.rb
|
110
111
|
- lib/rack/app/endpoint/config.rb
|
@@ -114,8 +115,9 @@ files:
|
|
114
115
|
- lib/rack/app/file_server.rb
|
115
116
|
- lib/rack/app/instance_methods.rb
|
116
117
|
- lib/rack/app/instance_methods/core.rb
|
117
|
-
- lib/rack/app/instance_methods/
|
118
|
+
- lib/rack/app/instance_methods/http_status.rb
|
118
119
|
- lib/rack/app/instance_methods/payload.rb
|
120
|
+
- lib/rack/app/instance_methods/redirect_to.rb
|
119
121
|
- lib/rack/app/instance_methods/serve_file.rb
|
120
122
|
- lib/rack/app/instance_methods/streaming.rb
|
121
123
|
- lib/rack/app/middlewares.rb
|
@@ -126,6 +128,7 @@ files:
|
|
126
128
|
- lib/rack/app/middlewares/header_setter.rb
|
127
129
|
- lib/rack/app/middlewares/hooks.rb
|
128
130
|
- lib/rack/app/middlewares/hooks/after.rb
|
131
|
+
- lib/rack/app/middlewares/hooks/base.rb
|
129
132
|
- lib/rack/app/middlewares/hooks/before.rb
|
130
133
|
- lib/rack/app/middlewares/params.rb
|
131
134
|
- lib/rack/app/middlewares/params/definition.rb
|