heroku-request-id 0.0.7 → 0.0.8
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
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 82a2faf66bd7a74a8491db5c8c829b73b703fdde
|
4
|
+
data.tar.gz: 35486a3a476614e2944d2cb6dbc10603dccc4586
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 285cfc49dfe52fe0d60bd8dccb478c925c86e0a93627db65648cf8fef5cc72159d2ac75ca571ca95988d6a647984a37c04d390d8b08d76ecdc9477e4c4aa6a43
|
7
|
+
data.tar.gz: bf01e0150a1d42f4e36043ad3f09c52cb62451a2491e5b4e81dfa93e59c4197d12ebb5b28f8a70c48e3690bf0770431eb6ce16b660222ed393c3b9c367739e3d
|
@@ -36,7 +36,7 @@ module HerokuRequestId
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def call(env)
|
39
|
-
@
|
39
|
+
@env = env
|
40
40
|
@request_id = env['HTTP_HEROKU_REQUEST_ID']
|
41
41
|
env["HTTP_X_REQUEST_ID"] = @request_id if self.class.x_request_id_replication
|
42
42
|
@status, @headers, @response = @app.call(env)
|
@@ -44,16 +44,26 @@ module HerokuRequestId
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def each(&block)
|
47
|
-
|
48
|
-
@elapsed = @stop - @start
|
47
|
+
msg = build_msg
|
49
48
|
if self.class.html_comment && @headers["Content-Type"] && @headers["Content-Type"].include?("text/html")
|
50
|
-
block.call("<!--
|
49
|
+
block.call("<!-- #{msg} -->\n")
|
51
50
|
end
|
52
51
|
if self.class.log_line
|
53
|
-
$stdout.puts(
|
52
|
+
$stdout.puts(msg)
|
54
53
|
end
|
55
54
|
@response.each(&block)
|
56
55
|
end
|
56
|
+
|
57
|
+
def build_msg
|
58
|
+
elapsed = @env['X-Runtime']
|
59
|
+
msg = %[Heroku request id : #{@request_id}]
|
60
|
+
if elapsed && elapsed.strip != ""
|
61
|
+
msg += %[ - Elapsed time (from Rack::Runtime) : #{elapsed}]
|
62
|
+
else
|
63
|
+
msg += %[ - Runtime info not available. (Use Rack::Runtime)]
|
64
|
+
end
|
65
|
+
msg
|
66
|
+
end
|
57
67
|
|
58
68
|
end
|
59
69
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module HerokuRequestId
|
2
2
|
class Railtie < Rails::Railtie
|
3
3
|
initializer 'heroku_request_id.add_middleware' do |app|
|
4
|
-
app.config.middleware.
|
4
|
+
app.config.middleware.insert_before "Rack::Runtime", "HerokuRequestId::Middleware"
|
5
5
|
end
|
6
6
|
end
|
7
7
|
end
|
@@ -10,19 +10,33 @@ describe HerokuRequestId::Middleware do
|
|
10
10
|
|
11
11
|
let(:app) { HerokuRequestId::Middleware.new(inner_app) }
|
12
12
|
|
13
|
-
|
14
|
-
capture_stdout
|
13
|
+
let(:request_without_rack_runtime)do
|
14
|
+
capture_stdout{ get("/", {}, {"HTTP_HEROKU_REQUEST_ID" => "the_id_string"}) }
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:request_with_rack_runtime)do
|
18
|
+
capture_stdout{ get("/", {}, {"HTTP_HEROKU_REQUEST_ID" => "the_id_string","X-Runtime" => "42"}) }
|
15
19
|
end
|
16
20
|
|
17
21
|
it "prints the request id to stdout by default" do
|
18
|
-
output =
|
19
|
-
output.should match("
|
22
|
+
output = request_without_rack_runtime
|
23
|
+
output.should match("Heroku request id")
|
20
24
|
output.should match("the_id_string")
|
21
25
|
end
|
22
26
|
|
27
|
+
it "Does not include runtime information if the 'X-Runtime' header is not present" do
|
28
|
+
output = request_without_rack_runtime
|
29
|
+
output.should match("Runtime info not available")
|
30
|
+
end
|
31
|
+
|
32
|
+
it "Does include runtime information if the 'X-Runtime' header is present" do
|
33
|
+
output = request_with_rack_runtime
|
34
|
+
output.should match("Elapsed time")
|
35
|
+
end
|
36
|
+
|
23
37
|
it "does not print the request id to stdout if log_line == false" do
|
24
38
|
HerokuRequestId::Middleware.log_line = false
|
25
|
-
output =
|
39
|
+
output = request_without_rack_runtime
|
26
40
|
output.should_not match("heroku-request-id")
|
27
41
|
output.should_not match("the_id_string")
|
28
42
|
# reset html_comment so that random test order works
|
@@ -30,14 +44,14 @@ describe HerokuRequestId::Middleware do
|
|
30
44
|
end
|
31
45
|
|
32
46
|
it "does not add a comment with the Heroku request id by default" do
|
33
|
-
|
47
|
+
request_without_rack_runtime
|
34
48
|
last_response.body.should_not match("Heroku request id")
|
35
49
|
last_response.body.should_not match("the_id_string")
|
36
50
|
end
|
37
51
|
|
38
52
|
it "does add a comment with the Heroku request id if html_comment == true" do
|
39
53
|
HerokuRequestId::Middleware.html_comment = true
|
40
|
-
|
54
|
+
request_without_rack_runtime
|
41
55
|
last_response.body.should match("Heroku request id")
|
42
56
|
last_response.body.should match("the_id_string")
|
43
57
|
# reset html_comment so that random test order works
|
@@ -45,7 +59,7 @@ describe HerokuRequestId::Middleware do
|
|
45
59
|
end
|
46
60
|
|
47
61
|
it "makes no change to response status" do
|
48
|
-
|
62
|
+
request_without_rack_runtime
|
49
63
|
last_response.should be_ok
|
50
64
|
end
|
51
65
|
|
@@ -60,6 +74,9 @@ describe HerokuRequestId::Middleware do
|
|
60
74
|
}
|
61
75
|
end
|
62
76
|
let(:app){ HerokuRequestId::Middleware.new(inner_app) }
|
77
|
+
subject do
|
78
|
+
capture_stdout { get("/", {}, { "HTTP_HEROKU_REQUEST_ID" => "the_id_string" }) }
|
79
|
+
end
|
63
80
|
context "by default" do
|
64
81
|
it "does not replicate the heroku header into rails header" do
|
65
82
|
subject
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heroku-request-id
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.8
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jeremy Green
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-06-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,49 +27,43 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rack-test
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: Simple Rack middleware to log the heroku request id and write it to the
|
@@ -100,33 +91,26 @@ files:
|
|
100
91
|
homepage: https://github.com/Octo-Labs/heroku-request-id
|
101
92
|
licenses:
|
102
93
|
- MIT
|
94
|
+
metadata: {}
|
103
95
|
post_install_message:
|
104
96
|
rdoc_options: []
|
105
97
|
require_paths:
|
106
98
|
- lib
|
107
99
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
-
none: false
|
109
100
|
requirements:
|
110
|
-
- -
|
101
|
+
- - '>='
|
111
102
|
- !ruby/object:Gem::Version
|
112
103
|
version: '0'
|
113
|
-
segments:
|
114
|
-
- 0
|
115
|
-
hash: 2380672724000137210
|
116
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
-
none: false
|
118
105
|
requirements:
|
119
|
-
- -
|
106
|
+
- - '>='
|
120
107
|
- !ruby/object:Gem::Version
|
121
108
|
version: '0'
|
122
|
-
segments:
|
123
|
-
- 0
|
124
|
-
hash: 2380672724000137210
|
125
109
|
requirements: []
|
126
110
|
rubyforge_project:
|
127
|
-
rubygems_version:
|
111
|
+
rubygems_version: 2.0.3
|
128
112
|
signing_key:
|
129
|
-
specification_version:
|
113
|
+
specification_version: 4
|
130
114
|
summary: Simple Rack middleware to log the heroku request id and write it to the end
|
131
115
|
of html requests. Both optionally, of course.
|
132
116
|
test_files:
|