Class: Rack::Insight::SQLPanel::QueryResult
- Inherits:
-
Object
- Object
- Rack::Insight::SQLPanel::QueryResult
show all
- Includes:
- FilteredBacktrace
- Defined in:
- lib/rack/insight/panels/sql_panel/query.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#backtrace, backtrace_regexp, #filtered_backtrace, #has_backtrace?, root_for_backtrace_filtering
Constructor Details
#initialize(sql, time, backtrace = [], result = nil) ⇒ QueryResult
Returns a new instance of QueryResult.
10
11
12
13
14
15
16
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 10
def initialize(sql, time, backtrace = [], result=nil)
@sql = sql
@time = time
@backtrace = backtrace
@result = result
@results = nil
end
|
Instance Attribute Details
#sql ⇒ Object
Returns the value of attribute sql.
7
8
9
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 7
def sql
@sql
end
|
#time ⇒ Object
Returns the value of attribute time.
8
9
10
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 8
def time
@time
end
|
Class Method Details
.execute(sql) ⇒ Object
Downside is: we re-execute the SQL…
50
51
52
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 50
def self.execute(sql)
ActiveRecord::Base.connection.execute(sql)
end
|
Instance Method Details
#column_names ⇒ Object
23
24
25
26
27
28
29
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 23
def column_names
if result.respond_to?(:fields)
return result.fields
else
return result.fetch_fields.map{|col| col.name}
end
end
|
#execute ⇒ Object
54
55
56
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 54
def execute
self.class.execute(@sql)
end
|
#human_time ⇒ Object
41
42
43
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 41
def human_time
"%.2fms" % (@time)
end
|
#inspectable? ⇒ Boolean
45
46
47
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 45
def inspectable?
sql.strip =~ /^SELECT /i
end
|
#result ⇒ Object
18
19
20
21
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 18
def result
@results ||= execute
return @results
end
|
#rows ⇒ Object
31
32
33
34
35
36
37
38
39
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 31
def rows
if result.respond_to?(:values)
result.values
else
result.map do |row|
row
end
end
end
|
#valid_hash?(secret_key, possible_hash) ⇒ Boolean
58
59
60
61
|
# File 'lib/rack/insight/panels/sql_panel/query.rb', line 58
def valid_hash?(secret_key, possible_hash)
hash = Digest::SHA1.hexdigest [secret_key, @sql].join(":")
possible_hash == hash
end
|