query_reviewer 0.1.3 → 0.1.4

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.
@@ -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