rorvswild 0.2.3 → 0.3.0
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 +4 -4
- data/lib/rorvswild/version.rb +1 -1
- data/lib/rorvswild.rb +26 -19
- 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: 232fd31fbdd8f8aa04082081440dab07b08476e0
|
4
|
+
data.tar.gz: c2159c0e883a30214d2bb6b2230a4a1401269862
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 701d9293224c6ab52761adfb3af3a6b7985fc1ffe1c2675bbf80faeb2f820254e97fe151b124a79b50a08541c4176b250d71a5012766c0a3a1791952e0bc382b
|
7
|
+
data.tar.gz: 5f6d5fb467f80b56fe300967fa8a40bce38cef2d057f812ee767c2825d42cde2fbc5c0a6ed645ee8810621cc4d8f9c25ca1a3212c7d7847cc014bbb72406252d
|
data/lib/rorvswild/version.rb
CHANGED
data/lib/rorvswild.rb
CHANGED
@@ -10,6 +10,19 @@ module RorVsWild
|
|
10
10
|
Client.new(*args) # Compatibility with 0.0.1
|
11
11
|
end
|
12
12
|
|
13
|
+
def self.detect_config_file
|
14
|
+
return if !defined?(Rails)
|
15
|
+
Rails::Railtie.initializer "rorvswild.detect_config_file" do
|
16
|
+
if !RorVsWild.default_client && (path = Rails.root.join("config/rorvswild.yml")).exist?
|
17
|
+
RorVsWild.load_config_file(path, Rails.env)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.load_config_file(path, environment)
|
23
|
+
config = YAML.load_file(path)[environment.to_s] and Client.new(config.symbolize_keys)
|
24
|
+
end
|
25
|
+
|
13
26
|
def self.register_default_client(client)
|
14
27
|
@default_client = client
|
15
28
|
end
|
@@ -43,16 +56,14 @@ module RorVsWild
|
|
43
56
|
{
|
44
57
|
api_url: "http://www.rorvswild.com/api",
|
45
58
|
explain_sql_threshold: 500,
|
46
|
-
log_sql_threshold: 100,
|
47
59
|
}
|
48
60
|
end
|
49
61
|
|
50
|
-
attr_reader :api_url, :api_key, :app_id, :explain_sql_threshold, :
|
62
|
+
attr_reader :api_url, :api_key, :app_id, :explain_sql_threshold, :app_root, :app_root_regex
|
51
63
|
|
52
64
|
def initialize(config)
|
53
65
|
config = self.class.default_config.merge(config)
|
54
66
|
@explain_sql_threshold = config[:explain_sql_threshold]
|
55
|
-
@log_sql_threshold = config[:log_sql_threshold]
|
56
67
|
@app_root = config[:app_root]
|
57
68
|
@api_url = config[:api_url]
|
58
69
|
@api_key = config[:api_key]
|
@@ -103,13 +114,10 @@ module RorVsWild
|
|
103
114
|
end
|
104
115
|
|
105
116
|
def after_sql_query(name, start, finish, id, payload)
|
106
|
-
return if !queries || payload[:name] == "EXPLAIN".freeze
|
107
|
-
runtime, sql, plan = compute_duration(start, finish), nil, nil
|
117
|
+
return if !queries || payload[:name] == "EXPLAIN".freeze || payload[:name] == "SCHEMA".freeze
|
108
118
|
file, line, method = extract_most_relevant_location(caller)
|
109
|
-
|
110
|
-
|
111
|
-
sql = payload[:sql] if runtime >= log_sql_threshold
|
112
|
-
plan = explain(payload[:sql], payload[:binds]) if runtime >= explain_sql_threshold
|
119
|
+
runtime, sql = compute_duration(start, finish), payload[:sql]
|
120
|
+
plan = runtime >= explain_sql_threshold ? explain(payload[:sql], payload[:binds]) : nil
|
113
121
|
push_query(file: file, line: line, method: method, sql: sql, plan: plan, runtime: runtime, times: 1)
|
114
122
|
rescue => exception
|
115
123
|
log_error(exception)
|
@@ -213,15 +221,12 @@ module RorVsWild
|
|
213
221
|
end
|
214
222
|
|
215
223
|
def push_query(query)
|
216
|
-
if query[:
|
217
|
-
|
224
|
+
if hash = queries.find { |hash| hash[:line] == query[:line] && hash[:file] == query[:file] }
|
225
|
+
hash[:runtime] += query[:runtime]
|
226
|
+
hash[:plan] = query[:plan]
|
227
|
+
hash[:times] += 1
|
218
228
|
else
|
219
|
-
|
220
|
-
hash[:runtime] += query[:runtime]
|
221
|
-
hash[:times] += 1
|
222
|
-
else
|
223
|
-
queries << query
|
224
|
-
end
|
229
|
+
queries << query
|
225
230
|
end
|
226
231
|
end
|
227
232
|
|
@@ -320,8 +325,8 @@ module RorVsWild
|
|
320
325
|
end
|
321
326
|
|
322
327
|
def log_error(exception)
|
323
|
-
logger.
|
324
|
-
logger.
|
328
|
+
@logger.error("[RorVsWild] " + exception.inspect)
|
329
|
+
@logger.error("[RorVsWild] " + exception.backtrace.join("\n[RorVsWild] "))
|
325
330
|
end
|
326
331
|
end
|
327
332
|
|
@@ -339,3 +344,5 @@ module RorVsWild
|
|
339
344
|
end
|
340
345
|
end
|
341
346
|
end
|
347
|
+
|
348
|
+
RorVsWild.detect_config_file
|
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.
|
4
|
+
version: 0.3.0
|
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-
|
11
|
+
date: 2015-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|