query_reviewer 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -39,7 +39,7 @@ module QueryReviewer
39
39
 
40
40
  def select_with_review(sql, *args)
41
41
  sql.gsub!(/^SELECT /i, "SELECT SQL_NO_CACHE ") if QueryReviewer::CONFIGURATION["disable_sql_cache"]
42
- @logger.silence { execute("SET PROFILING=1") } if QueryReviewer::CONFIGURATION["profiling"]
42
+ QueryReviewer.safe_log { execute("SET PROFILING=1") } if QueryReviewer::CONFIGURATION["profiling"]
43
43
  t1 = Time.now
44
44
  query_results = select_without_review(sql, *args)
45
45
  t2 = Time.now
@@ -50,19 +50,19 @@ module QueryReviewer
50
50
 
51
51
  if use_profiling
52
52
  t5 = Time.now
53
- @logger.silence { execute("SET PROFILING=1") }
53
+ QueryReviewer.safe_log { execute("SET PROFILING=1") }
54
54
  t3 = Time.now
55
55
  select_without_review(sql, *args)
56
56
  t4 = Time.now
57
- profile = @logger.silence { select_without_review("SHOW PROFILE ALL", *args) }
58
- @logger.silence { execute("SET PROFILING=0") }
57
+ profile = QueryReviewer.safe_log { select_without_review("SHOW PROFILE ALL", *args) }
58
+ QueryReviewer.safe_log { execute("SET PROFILING=0") }
59
59
  t6 = Time.now
60
60
  Thread.current["queries"].overhead_time += t6 - t5
61
61
  else
62
62
  profile = nil
63
63
  end
64
64
 
65
- cols = @logger.silence do
65
+ cols = QueryReviewer.safe_log do
66
66
  select_without_review("explain #{sql}", *args)
67
67
  end
68
68
 
@@ -33,5 +33,5 @@ if defined?(Rails::Railtie)
33
33
  else # Rails 2
34
34
  QueryReviewer.load_configuration
35
35
 
36
- QueryReviewer.inject_reviewer
36
+ QueryReviewer.inject_reviewer if QueryReviewer.enabled?
37
37
  end
@@ -116,6 +116,7 @@ module QueryReviewer
116
116
 
117
117
  def self.sanitize_strings_and_numbers_from_sql(sql)
118
118
  new_sql = sql.clone
119
+ new_sql = new_sql.to_sql if new_sql.respond_to?(:to_sql)
119
120
  new_sql.gsub!(/\b\d+\b/, "N")
120
121
  new_sql.gsub!(/\b0x[0-9A-Fa-f]+\b/, "N")
121
122
  new_sql.gsub!(/''/, "'S'")
@@ -20,6 +20,7 @@ module QueryReviewer
20
20
  end
21
21
 
22
22
  def syntax_highlighted_sql(sql)
23
+ sql = sql.to_sql if sql.respond_to?(:to_sql)
23
24
  if QueryReviewer::CONFIGURATION["uv"]
24
25
  uv_out = Uv.parse(sql, "xhtml", "sql_rails", false, "blackboard")
25
26
  uv_out.gsub("<pre class=\"blackboard\">", "<code class=\"sql\">").gsub("</pre>", "</code>")
@@ -49,6 +49,15 @@ module QueryReviewer
49
49
  def self.enabled?
50
50
  CONFIGURATION["enabled"]
51
51
  end
52
+
53
+ def self.safe_log(&block)
54
+ if Rails::VERSION::STRING.to_f >= 3.1
55
+ @logger.quietly { yield }
56
+ else
57
+ @logger.silence { yield }
58
+ end
59
+ end
60
+
52
61
  end
53
62
 
54
63
  # Rails Integration
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: query_reviewer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - dsboulder, nesquena
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-01 00:00:00 -07:00
18
+ date: 2012-02-09 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies: []
21
21