rorvswild 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rorvswild.rb +14 -7
- data/lib/rorvswild/version.rb +1 -1
- data/test/ror_vs_wild_test.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2090ba967a7c985f4403ac9e01fc364886120dd9
|
4
|
+
data.tar.gz: 6251252d0727624d67fecb7a680786baac12b89b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 711ed99628c2daeddb99b7ca068401e1d266ab655977e39f3f79b6ca9af6e6aa6b8b051addc4e3dcf4eba0c1e6d2a002541bb332422b4102f1056b86d52343c0
|
7
|
+
data.tar.gz: 269fb5c4c938c7b891d4fb1e4f7c8515f137c3797c1fb83b2c15f981ab68f3f9fb44912ca86eb0f9035dbe6a76be634eb1de6fb5a8d50734236862734b37b0ab
|
data/lib/rorvswild.rb
CHANGED
@@ -100,7 +100,7 @@ module RorVsWild
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def before_http_request(name, start, finish, id, payload)
|
103
|
-
request.merge!(controller: payload[:controller], action: payload[:action], path: payload[:path])
|
103
|
+
request.merge!(controller: payload[:controller], action: payload[:action], path: payload[:path], queries: [], views: {})
|
104
104
|
end
|
105
105
|
|
106
106
|
def after_http_request(name, start, finish, id, payload)
|
@@ -118,7 +118,7 @@ module RorVsWild
|
|
118
118
|
file, line, method = extract_most_relevant_location(caller)
|
119
119
|
runtime, sql = compute_duration(start, finish), payload[:sql]
|
120
120
|
plan = runtime >= explain_sql_threshold ? explain(payload[:sql], payload[:binds]) : nil
|
121
|
-
push_query(file: file, line: line, method: method, sql: sql, plan: plan, runtime: runtime
|
121
|
+
push_query(file: file, line: line, method: method, sql: sql, plan: plan, runtime: runtime)
|
122
122
|
rescue => exception
|
123
123
|
log_error(exception)
|
124
124
|
end
|
@@ -160,10 +160,11 @@ module RorVsWild
|
|
160
160
|
|
161
161
|
def measure_block(name, &block)
|
162
162
|
job[:name] = name
|
163
|
+
job[:queries] = []
|
163
164
|
started_at = Time.now
|
164
165
|
cpu_time_offset = cpu_time
|
165
166
|
block.call
|
166
|
-
rescue => exception
|
167
|
+
rescue Exception => exception
|
167
168
|
job[:error] = exception_to_hash(exception)
|
168
169
|
raise
|
169
170
|
ensure
|
@@ -175,7 +176,7 @@ module RorVsWild
|
|
175
176
|
def catch_error(extra_details = nil, &block)
|
176
177
|
begin
|
177
178
|
block.call
|
178
|
-
rescue => exception
|
179
|
+
rescue Exception => exception
|
179
180
|
record_error(exception, extra_details)
|
180
181
|
exception
|
181
182
|
end
|
@@ -197,11 +198,11 @@ module RorVsWild
|
|
197
198
|
private
|
198
199
|
|
199
200
|
def queries
|
200
|
-
data[:queries]
|
201
|
+
data[:queries]
|
201
202
|
end
|
202
203
|
|
203
204
|
def views
|
204
|
-
data[:views]
|
205
|
+
data[:views]
|
205
206
|
end
|
206
207
|
|
207
208
|
def job
|
@@ -222,10 +223,16 @@ module RorVsWild
|
|
222
223
|
|
223
224
|
def push_query(query)
|
224
225
|
if hash = queries.find { |hash| hash[:line] == query[:line] && hash[:file] == query[:file] }
|
226
|
+
if query[:runtime] > hash[:max_runtime]
|
227
|
+
hash[:max_runtime] = query[:runtime]
|
228
|
+
hash[:plan] = query[:plan]
|
229
|
+
hash[:sql] = query[:sql]
|
230
|
+
end
|
225
231
|
hash[:runtime] += query[:runtime]
|
226
|
-
hash[:plan] = query[:plan]
|
227
232
|
hash[:times] += 1
|
228
233
|
else
|
234
|
+
query[:times] = 1
|
235
|
+
query[:max_runtime] = query[:runtime]
|
229
236
|
queries << query
|
230
237
|
end
|
231
238
|
end
|
data/lib/rorvswild/version.rb
CHANGED
data/test/ror_vs_wild_test.rb
CHANGED
@@ -79,6 +79,14 @@ class RorVsWildTest < MiniTest::Unit::TestCase
|
|
79
79
|
assert_equal(["/app/models/user.rb", "3", "method3"], client.send(:extract_most_relevant_location, callstack))
|
80
80
|
end
|
81
81
|
|
82
|
+
def test_push_query
|
83
|
+
client = initialize_client
|
84
|
+
client.send(:data)[:queries] = []
|
85
|
+
client.send(:push_query, {file: "file", line: 123, sql: "SELECT 1", runtime: 10})
|
86
|
+
client.send(:push_query, {file: "file", line: 123, sql: "SELECT 2", runtime: 11})
|
87
|
+
assert_equal([{file: "file", line: 123, sql: "SELECT 2", runtime: 21, max_runtime: 11, times: 2, plan: nil,}], client.send(:queries))
|
88
|
+
end
|
89
|
+
|
82
90
|
private
|
83
91
|
|
84
92
|
def client
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rorvswild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexis Bernard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|