logical-insight 0.4.6 → 0.4.7
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.
@@ -0,0 +1,48 @@
|
|
1
|
+
require "digest"
|
2
|
+
|
3
|
+
module Insight
|
4
|
+
class ActiveResourcePanel < Panel
|
5
|
+
require 'insight/panels/active_resource_panel/query'
|
6
|
+
#require "insight/panels/sql_panel/panel_app"
|
7
|
+
#require "insight/panels/sql_panel/query"
|
8
|
+
|
9
|
+
def initialize(app)
|
10
|
+
super
|
11
|
+
probe(self) do
|
12
|
+
instrument "ActiveResource::Connection" do
|
13
|
+
instance_probe :request
|
14
|
+
end
|
15
|
+
end
|
16
|
+
table_setup("active_resource_requests")
|
17
|
+
end
|
18
|
+
|
19
|
+
def after_detect(method_call, timing, arguments, results)
|
20
|
+
body = "<no body>"
|
21
|
+
if results.respond_to? :body
|
22
|
+
body = results.body
|
23
|
+
end
|
24
|
+
store(@env, RequestResult.new(arguments[0], arguments[1..-1], timing.duration, method_call.backtrace[0..5], body))
|
25
|
+
end
|
26
|
+
|
27
|
+
def total_time(queries)
|
28
|
+
(queries.inject(0) do |memo, query|
|
29
|
+
memo + query.time
|
30
|
+
end)
|
31
|
+
end
|
32
|
+
|
33
|
+
def name
|
34
|
+
"active_resource"
|
35
|
+
end
|
36
|
+
|
37
|
+
def heading_for_request(number)
|
38
|
+
queries = retrieve(number)
|
39
|
+
"ARes: #{queries.size} Queries (%.2fms)" % total_time(queries)
|
40
|
+
end
|
41
|
+
|
42
|
+
def content_for_request(number)
|
43
|
+
queries = retrieve(number)
|
44
|
+
logger.debug{ "ARes: #{queries.inspect}" }
|
45
|
+
render_template "panels/active_resource", :queries => queries
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Insight
|
2
|
+
class ActiveResourcePanel
|
3
|
+
class RequestResult
|
4
|
+
include Insight::FilteredBacktrace
|
5
|
+
|
6
|
+
attr_reader :path, :args, :result, :time
|
7
|
+
alias results result
|
8
|
+
|
9
|
+
def initialize(path, args, time, backtrace = [], result=nil)
|
10
|
+
@path = path
|
11
|
+
@args = args
|
12
|
+
@time = time
|
13
|
+
@backtrace = backtrace
|
14
|
+
@result = result
|
15
|
+
end
|
16
|
+
|
17
|
+
def human_time
|
18
|
+
"%.2fms" % (@time)
|
19
|
+
end
|
20
|
+
|
21
|
+
def valid_hash?(secret_key, possible_hash)
|
22
|
+
hash = Digest::SHA1.hexdigest [secret_key, @sql].join(":")
|
23
|
+
possible_hash == hash
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<h3>ActiveResource HTTP Queries</h3>
|
2
|
+
<table class="sortable">
|
3
|
+
<thead>
|
4
|
+
<tr>
|
5
|
+
<th class="time">Time (ms)</th>
|
6
|
+
<th class="query">Query</th>
|
7
|
+
<th class="backtrace">Backtrace</th>
|
8
|
+
<th class="result">Result</th>
|
9
|
+
</tr>
|
10
|
+
</thead>
|
11
|
+
<tbody>
|
12
|
+
<% i = 1 %>
|
13
|
+
<% queries.each do |query| %>
|
14
|
+
<tr class="<%= i % 2 == 0 ? "even" : "odd" %>">
|
15
|
+
<td><%= query.human_time %></td>
|
16
|
+
<td class="syntax"><%= query.path %><%= query.args.inspect %></td>
|
17
|
+
<td>
|
18
|
+
<% if query.has_backtrace? %>
|
19
|
+
<a href="#" class="reveal_backtrace">Show Backtrace</a>
|
20
|
+
<% end %>
|
21
|
+
</td>
|
22
|
+
<td>
|
23
|
+
<a href="#" class="reveal_response">Show Response Body</a>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<tr style="display:none">
|
27
|
+
<td></td>
|
28
|
+
<td colspan="3">
|
29
|
+
<ul>
|
30
|
+
<% query.filtered_backtrace.each do |line| %>
|
31
|
+
<li><%=h line %></li>
|
32
|
+
<% end %>
|
33
|
+
</ul>
|
34
|
+
</td>
|
35
|
+
</tr>
|
36
|
+
<tr id="response" style="display:none">
|
37
|
+
<td></td>
|
38
|
+
<td colspan="3">
|
39
|
+
<p><%= query.results %></p>
|
40
|
+
<!-- <%= query.inspect %> -->
|
41
|
+
<!-- <%= query.results.inspect %> -->
|
42
|
+
</td>
|
43
|
+
</tr>
|
44
|
+
<% i += 1 %>
|
45
|
+
<% end %>
|
46
|
+
</tbody>
|
47
|
+
</table>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logical-insight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -15,7 +15,7 @@ date: 2012-05-17 00:00:00.000000000 Z
|
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: corundum
|
18
|
-
requirement: &
|
18
|
+
requirement: &84285480 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,10 @@ dependencies:
|
|
23
23
|
version: 0.0.13
|
24
24
|
type: :development
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *84285480
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: redcarpet
|
29
|
-
requirement: &
|
29
|
+
requirement: &84285080 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ! '>='
|
@@ -34,10 +34,10 @@ dependencies:
|
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *84285080
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: uuid
|
40
|
-
requirement: &
|
40
|
+
requirement: &84284500 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
@@ -49,10 +49,10 @@ dependencies:
|
|
49
49
|
- 1
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
|
-
version_requirements: *
|
52
|
+
version_requirements: *84284500
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: sqlite3
|
55
|
-
requirement: &
|
55
|
+
requirement: &84283960 !ruby/object:Gem::Requirement
|
56
56
|
none: false
|
57
57
|
requirements:
|
58
58
|
- - ~>
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
- 3
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
|
-
version_requirements: *
|
67
|
+
version_requirements: *84283960
|
68
68
|
description: ! "Debugging toolbar for Rack applications implemented as\n middleware.
|
69
69
|
\ Rails 3 compatible version maintained by Logical Reality\n Design. "
|
70
70
|
email:
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- lib/insight/views/panels/request_variables.html.erb
|
102
102
|
- lib/insight/views/panels/profile_sql.html.erb
|
103
103
|
- lib/insight/views/panels/redis.html.erb
|
104
|
+
- lib/insight/views/panels/active_resource.html.erb
|
104
105
|
- lib/insight/views/toolbar.html.erb
|
105
106
|
- lib/insight/views/error.html.erb
|
106
107
|
- lib/insight/options.rb
|
@@ -134,6 +135,8 @@ files:
|
|
134
135
|
- lib/insight/panels/speedtracer_panel.rb
|
135
136
|
- lib/insight/panels/templates_panel/rendering.rb
|
136
137
|
- lib/insight/panels/memory_panel.rb
|
138
|
+
- lib/insight/panels/active_resource_panel.rb
|
139
|
+
- lib/insight/panels/active_resource_panel/query.rb
|
137
140
|
- lib/insight/request-recorder.rb
|
138
141
|
- lib/insight/public/__insight__/bookmarklet.html
|
139
142
|
- lib/insight/public/__insight__/bookmarklet.js
|
@@ -191,7 +194,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
191
194
|
version: '0'
|
192
195
|
segments:
|
193
196
|
- 0
|
194
|
-
hash:
|
197
|
+
hash: 675690895
|
195
198
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
199
|
none: false
|
197
200
|
requirements:
|