rack-timeout 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/README.markdown +26 -8
- data/lib/rack-timeout.rb +2 -2
- data/lib/rack/timeout.rb +1 -1
- metadata +24 -43
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YjU4ZjQzOTJjZTcwNDdiZGZiZmU0YWI5NDMyMDRlYzU3Y2M3MTRjNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZGRlNjU2ZGExNWY2NTYxODU5ZTgyYmMxYWM4MmM2NmYxZDZlNzQ2Ng==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZWIyMTg0ODVmM2JkMDE0YzUxZjcxZmNiZTYzMjQxZWZmMzc2YTJlMGQ4OTAz
|
10
|
+
NDBlMzczYTY5MDM4YTlkY2JiMTYwOGNjNDNhYTE3YzhiZDQyNjEwOTgxZjVi
|
11
|
+
ZjYxZDQxZWNiZDMxNzM5NzI4ZmUwMDU2NWJlNzJjNWM0YzM5M2Q=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YzQzMzU3MDAxMWY3Y2U4YzY3MjZhYmU4YmRlOGEzOTVjOTNkZWZjNjRiMDlk
|
14
|
+
NWZmMWQ1Zjk4ZjdiNThhOTJiMjQ0N2RhODYwNmQyZTYxM2I0NTM4ZTAzYjQ3
|
15
|
+
M2EwNmEzMzc1OWM4NmY3ZjhkYTgzMGJiYjNlODJmZGEyNWM2MWI=
|
data/README.markdown
CHANGED
@@ -7,7 +7,12 @@ Abort requests that are taking too long; a Timeout::Error will be raised.
|
|
7
7
|
Usage
|
8
8
|
-----
|
9
9
|
|
10
|
-
### Rails 3 app or Rails 2.3 app with Bundler
|
10
|
+
### Rails 3 app or Rails 2.3 app with Ruby 1.9 and Bundler
|
11
|
+
|
12
|
+
# Gemfile
|
13
|
+
gem "rack-timeout"
|
14
|
+
|
15
|
+
### Rails 3 app or Rails 2.3 app with Ruby 1.8 and Bundler
|
11
16
|
|
12
17
|
# Gemfile
|
13
18
|
gem "SystemTimer", :require => "system_timer", :platforms => :ruby_18
|
@@ -17,18 +22,17 @@ Usage
|
|
17
22
|
### Rails 2.3 app without Bundler
|
18
23
|
|
19
24
|
# config/environment.rb
|
20
|
-
config.gem "SystemTimer", :
|
25
|
+
config.gem "SystemTimer", :lib => "system_timer" if RUBY_VERSION < "1.9"
|
21
26
|
config.gem "rack-timeout"
|
22
27
|
|
23
28
|
|
24
29
|
### Sinatra and other Rack apps
|
25
30
|
|
26
31
|
# config.ru
|
27
|
-
require
|
28
|
-
use Rack::Timeout
|
32
|
+
require "rack/timeout"
|
33
|
+
use Rack::Timeout # call as early as possible so rack-timeout runs before other middlewares.
|
29
34
|
Rack::Timeout.timeout = 10 # this line is optional. if omitted, default is 15 seconds.
|
30
35
|
|
31
|
-
|
32
36
|
### Setting a custom timeout for Rails apps
|
33
37
|
|
34
38
|
# config/initializers/timeout.rb
|
@@ -37,10 +41,24 @@ Usage
|
|
37
41
|
|
38
42
|
### Here be dragons
|
39
43
|
|
40
|
-
SystemTimer/timeout rely on threads. If your app or any of the libraries it depends on is
|
41
|
-
|
44
|
+
SystemTimer/timeout rely on threads. If your app or any of the libraries it depends on is not thread-safe,
|
45
|
+
you may run into issues using rack-timeout.
|
46
|
+
|
47
|
+
Concurrent web servers such as [Unicorn][] and [Puma][] should work fine with rack-timeout.
|
48
|
+
|
49
|
+
[Unicorn]: http://unicorn.bogomips.org/
|
50
|
+
[Puma]: http://puma.io/
|
51
|
+
|
52
|
+
#### A note about testing timeouts in Rails apps
|
53
|
+
|
54
|
+
If you're trying to test that a `Timeout::Error` is being raised in your Rails application, please note that
|
55
|
+
it's **not possible in functional tests**. You *can*, however, test `assert_raises Rack::Timeout::Error`
|
56
|
+
in integration tests.
|
57
|
+
|
58
|
+
There are more details about general rack middleware testing with Rails in this [@pablobm's answer on Stack Overflow][pablobm].
|
42
59
|
|
60
|
+
[pablobm]: http://stackoverflow.com/a/8681208/13989
|
43
61
|
|
44
62
|
---
|
45
|
-
Copyright © 2010 Caio Chassot, released under the MIT license
|
63
|
+
Copyright © 2010 Caio Chassot, released under the MIT license
|
46
64
|
<http://github.com/kch/rack-timeout>
|
data/lib/rack-timeout.rb
CHANGED
@@ -2,10 +2,10 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'rack/timeout')
|
|
2
2
|
|
3
3
|
if defined? Rails
|
4
4
|
case Rails::VERSION::MAJOR
|
5
|
-
when 2; Rails.configuration.middleware.
|
5
|
+
when 2; Rails.configuration.middleware.insert 0, Rack::Timeout
|
6
6
|
when 3
|
7
7
|
class Rack::Timeout::Railtie < Rails::Railtie
|
8
|
-
initializer("rack-timeout.insert-rack-timeout") { |app| app.config.middleware.
|
8
|
+
initializer("rack-timeout.insert-rack-timeout") { |app| app.config.middleware.insert 0, Rack::Timeout }
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
data/lib/rack/timeout.rb
CHANGED
metadata
CHANGED
@@ -1,67 +1,48 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-timeout
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
version: 0.0.3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
6
|
+
authors:
|
12
7
|
- Caio Chassot
|
13
8
|
autorequire:
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
|
-
|
17
|
-
date: 2011-07-13 00:00:00 -07:00
|
18
|
-
default_executable:
|
11
|
+
date: 2013-04-25 00:00:00.000000000 Z
|
19
12
|
dependencies: []
|
20
|
-
|
21
|
-
|
13
|
+
description: Rack middleware which aborts requests that have been running for longer
|
14
|
+
than a specified timeout.
|
22
15
|
email: dev@caiochassot.com
|
23
16
|
executables: []
|
24
|
-
|
25
17
|
extensions: []
|
26
|
-
|
27
18
|
extra_rdoc_files: []
|
28
|
-
|
29
|
-
files:
|
19
|
+
files:
|
30
20
|
- MIT-LICENSE
|
31
21
|
- README.markdown
|
32
22
|
- lib/rack/timeout.rb
|
33
23
|
- lib/rack-timeout.rb
|
34
|
-
has_rdoc: true
|
35
24
|
homepage: http://github.com/kch/rack-timeout
|
36
|
-
licenses:
|
37
|
-
|
25
|
+
licenses:
|
26
|
+
- MIT
|
27
|
+
metadata: {}
|
38
28
|
post_install_message:
|
39
29
|
rdoc_options: []
|
40
|
-
|
41
|
-
require_paths:
|
30
|
+
require_paths:
|
42
31
|
- lib
|
43
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
segments:
|
57
|
-
- 0
|
58
|
-
version: "0"
|
32
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ! '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ! '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
59
42
|
requirements: []
|
60
|
-
|
61
43
|
rubyforge_project:
|
62
|
-
rubygems_version:
|
44
|
+
rubygems_version: 2.0.3
|
63
45
|
signing_key:
|
64
|
-
specification_version:
|
46
|
+
specification_version: 4
|
65
47
|
summary: Abort requests that are taking too long
|
66
48
|
test_files: []
|
67
|
-
|