log_spy 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +5 -0
- data/lib/log_spy/payload.rb +8 -3
- data/lib/log_spy/version.rb +1 -1
- data/spec/payload_spec.rb +44 -9
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34268e22c164c45eca6f47b0b0c36f884fafa44e
|
4
|
+
data.tar.gz: 60f7eb5ad9eecbf8aa043cccaf29fbd50704756b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a02c0a56797fb22b04571a651f5947f02f94daecb9c63569e0ee34b42b3449825c16db65c9f0b32f4b41989336cdfc9dd889d6179ee77d05238c44be5e98a163
|
7
|
+
data.tar.gz: 382af23783237d1962b0b54b0bd810694457ea956f55c7ea4e037bb02359c9864c7ad384170afb4a08bd7ccbd145ae2a5a8814fabac161c385eee9f9bfc55715
|
data/History.md
ADDED
data/lib/log_spy/payload.rb
CHANGED
@@ -8,8 +8,6 @@ class LogSpy::Payload
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def to_json
|
11
|
-
req_body = @req.content_type =~ /multipart/ ? '' : @req.body.read
|
12
|
-
|
13
11
|
hash = {
|
14
12
|
:path => @req.path,
|
15
13
|
:status => @res.status,
|
@@ -20,7 +18,7 @@ class LogSpy::Payload
|
|
20
18
|
:request_method => @req.request_method,
|
21
19
|
:ip => @req.ip,
|
22
20
|
:query_string => @req.query_string,
|
23
|
-
:body =>
|
21
|
+
:body => request_body
|
24
22
|
}
|
25
23
|
}
|
26
24
|
|
@@ -30,4 +28,11 @@ class LogSpy::Payload
|
|
30
28
|
|
31
29
|
hash.to_json
|
32
30
|
end
|
31
|
+
|
32
|
+
def request_body
|
33
|
+
return '' if @req.content_type =~ /multipart/
|
34
|
+
@req.body.read
|
35
|
+
rescue Exception => e
|
36
|
+
@req.env['RAW_POST_BODY']
|
37
|
+
end
|
33
38
|
end
|
data/lib/log_spy/version.rb
CHANGED
data/spec/payload_spec.rb
CHANGED
@@ -8,7 +8,7 @@ describe LogSpy::Payload do
|
|
8
8
|
let(:query_string) { 'query-key=query-val' }
|
9
9
|
let(:status) { 200 }
|
10
10
|
let(:duration) { 335 }
|
11
|
-
let(:body) { double(:body
|
11
|
+
let(:body) { double(:body) }
|
12
12
|
let(:content_type) { 'application/json' }
|
13
13
|
|
14
14
|
let(:request) do
|
@@ -48,14 +48,12 @@ describe LogSpy::Payload do
|
|
48
48
|
:content_type => content_type,
|
49
49
|
:request_method => request_method,
|
50
50
|
:ip => ip,
|
51
|
-
:query_string => query_string
|
52
|
-
:body => body.read
|
51
|
+
:query_string => query_string
|
53
52
|
}
|
54
53
|
}
|
55
54
|
end
|
56
55
|
|
57
|
-
|
58
|
-
let(:payload) { LogSpy::Payload.new request, response, begin_at }
|
56
|
+
shared_examples 'ensure_payload_formats' do
|
59
57
|
it 'returns correct format' do
|
60
58
|
expect(payload.to_json).to eq(expected_hash.to_json)
|
61
59
|
end
|
@@ -68,17 +66,54 @@ describe LogSpy::Payload do
|
|
68
66
|
end
|
69
67
|
end
|
70
68
|
|
71
|
-
|
69
|
+
shared_context "if_body_readable" do
|
70
|
+
before(:each) do
|
71
|
+
allow(body).to receive_messages(:read => 'the-raw-body')
|
72
|
+
expected_hash[:request][:body] = 'the-raw-body'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
shared_context 'if_body_unreadable' do
|
77
|
+
before(:each) do
|
78
|
+
allow(body).to receive(:read).and_raise(Exception, 'closed stream')
|
79
|
+
allow(request).to receive_messages(:env => { 'RAW_POST_BODY' => 'raw-post-body' })
|
80
|
+
expected_hash[:request][:body] = 'raw-post-body'
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context "if request ends without error" do
|
85
|
+
let(:payload) { LogSpy::Payload.new request, response, begin_at }
|
86
|
+
|
87
|
+
context "if body can be read" do
|
88
|
+
include_context "if_body_readable"
|
89
|
+
include_examples 'ensure_payload_formats'
|
90
|
+
end
|
91
|
+
|
92
|
+
context "if body can not be read" do
|
93
|
+
include_context "if_body_unreadable"
|
94
|
+
include_examples 'ensure_payload_formats'
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
context "if request ends with error" do
|
72
100
|
let(:payload) { LogSpy::Payload.new request, response, begin_at, error }
|
73
|
-
|
101
|
+
before :each do
|
74
102
|
expected_hash[:error] = {
|
75
103
|
:message => error.message,
|
76
104
|
:backtrace => error.backtrace
|
77
105
|
}
|
106
|
+
end
|
78
107
|
|
79
|
-
|
108
|
+
context "if request body can be read" do
|
109
|
+
include_context 'if_body_readable'
|
110
|
+
include_examples 'ensure_payload_formats'
|
111
|
+
end
|
112
|
+
|
113
|
+
context "if request body can not be read" do
|
114
|
+
include_context 'if_body_unreadable'
|
115
|
+
include_examples 'ensure_payload_formats'
|
80
116
|
end
|
81
|
-
|
82
117
|
end
|
83
118
|
end
|
84
119
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log_spy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yang-Hsing Lin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- .gitignore
|
91
91
|
- .rspec
|
92
92
|
- Gemfile
|
93
|
+
- History.md
|
93
94
|
- LICENSE.txt
|
94
95
|
- README.md
|
95
96
|
- Rakefile
|
@@ -121,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
122
|
version: '0'
|
122
123
|
requirements: []
|
123
124
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.
|
125
|
+
rubygems_version: 2.0.3
|
125
126
|
signing_key:
|
126
127
|
specification_version: 4
|
127
128
|
summary: send rack application log to Amazon SQS
|