ghazel-rack-bug 0.3.0.1

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.
Files changed (86) hide show
  1. data/.gitignore +3 -0
  2. data/History.txt +45 -0
  3. data/MIT-LICENSE.txt +19 -0
  4. data/README.md +118 -0
  5. data/Rakefile +23 -0
  6. data/Thorfile +113 -0
  7. data/lib/rack/bug.rb +83 -0
  8. data/lib/rack/bug/autoloading.rb +24 -0
  9. data/lib/rack/bug/filtered_backtrace.rb +38 -0
  10. data/lib/rack/bug/options.rb +89 -0
  11. data/lib/rack/bug/panel.rb +50 -0
  12. data/lib/rack/bug/panel_app.rb +33 -0
  13. data/lib/rack/bug/panels/active_record_panel.rb +45 -0
  14. data/lib/rack/bug/panels/active_record_panel/activerecord_extensions.rb +18 -0
  15. data/lib/rack/bug/panels/cache_panel.rb +51 -0
  16. data/lib/rack/bug/panels/cache_panel/dalli_extension.rb +16 -0
  17. data/lib/rack/bug/panels/cache_panel/memcache_extension.rb +129 -0
  18. data/lib/rack/bug/panels/cache_panel/panel_app.rb +48 -0
  19. data/lib/rack/bug/panels/cache_panel/stats.rb +97 -0
  20. data/lib/rack/bug/panels/log_panel.rb +56 -0
  21. data/lib/rack/bug/panels/log_panel/logger_extension.rb +24 -0
  22. data/lib/rack/bug/panels/memory_panel.rb +27 -0
  23. data/lib/rack/bug/panels/rails_info_panel.rb +23 -0
  24. data/lib/rack/bug/panels/redis_panel.rb +44 -0
  25. data/lib/rack/bug/panels/redis_panel/redis_extension.rb +28 -0
  26. data/lib/rack/bug/panels/redis_panel/stats.rb +52 -0
  27. data/lib/rack/bug/panels/request_variables_panel.rb +52 -0
  28. data/lib/rack/bug/panels/sphinx_panel.rb +44 -0
  29. data/lib/rack/bug/panels/sphinx_panel/sphinx_extension.rb +25 -0
  30. data/lib/rack/bug/panels/sphinx_panel/stats.rb +96 -0
  31. data/lib/rack/bug/panels/sql_panel.rb +55 -0
  32. data/lib/rack/bug/panels/sql_panel/panel_app.rb +37 -0
  33. data/lib/rack/bug/panels/sql_panel/query.rb +63 -0
  34. data/lib/rack/bug/panels/sql_panel/sql_extension.rb +11 -0
  35. data/lib/rack/bug/panels/templates_panel.rb +44 -0
  36. data/lib/rack/bug/panels/templates_panel/actionview_extension.rb +12 -0
  37. data/lib/rack/bug/panels/templates_panel/rendering.rb +67 -0
  38. data/lib/rack/bug/panels/templates_panel/trace.rb +34 -0
  39. data/lib/rack/bug/panels/timer_panel.rb +40 -0
  40. data/lib/rack/bug/params_signature.rb +63 -0
  41. data/lib/rack/bug/public/__rack_bug__/bookmarklet.html +10 -0
  42. data/lib/rack/bug/public/__rack_bug__/bookmarklet.js +217 -0
  43. data/lib/rack/bug/public/__rack_bug__/bug.css +216 -0
  44. data/lib/rack/bug/public/__rack_bug__/bug.js +84 -0
  45. data/lib/rack/bug/public/__rack_bug__/jquery-1.3.2.js +4376 -0
  46. data/lib/rack/bug/public/__rack_bug__/jquery.tablesorter.min.js +1 -0
  47. data/lib/rack/bug/public/__rack_bug__/spinner.gif +0 -0
  48. data/lib/rack/bug/rack_static_bug_avoider.rb +16 -0
  49. data/lib/rack/bug/redirect_interceptor.rb +27 -0
  50. data/lib/rack/bug/render.rb +66 -0
  51. data/lib/rack/bug/toolbar.rb +66 -0
  52. data/lib/rack/bug/views/error.html.erb +16 -0
  53. data/lib/rack/bug/views/panels/active_record.html.erb +17 -0
  54. data/lib/rack/bug/views/panels/cache.html.erb +93 -0
  55. data/lib/rack/bug/views/panels/execute_sql.html.erb +32 -0
  56. data/lib/rack/bug/views/panels/explain_sql.html.erb +32 -0
  57. data/lib/rack/bug/views/panels/log.html.erb +21 -0
  58. data/lib/rack/bug/views/panels/profile_sql.html.erb +32 -0
  59. data/lib/rack/bug/views/panels/rails_info.html.erb +19 -0
  60. data/lib/rack/bug/views/panels/redis.html.erb +46 -0
  61. data/lib/rack/bug/views/panels/request_variables.html.erb +29 -0
  62. data/lib/rack/bug/views/panels/sphinx.html.erb +32 -0
  63. data/lib/rack/bug/views/panels/sql.html.erb +43 -0
  64. data/lib/rack/bug/views/panels/templates.html.erb +7 -0
  65. data/lib/rack/bug/views/panels/timer.html.erb +19 -0
  66. data/lib/rack/bug/views/panels/view_cache.html.erb +19 -0
  67. data/lib/rack/bug/views/redirect.html.erb +16 -0
  68. data/lib/rack/bug/views/toolbar.html.erb +42 -0
  69. data/rack-bug.gemspec +147 -0
  70. data/spec/fixtures/config.ru +8 -0
  71. data/spec/fixtures/dummy_panel.rb +2 -0
  72. data/spec/fixtures/sample_app.rb +46 -0
  73. data/spec/rack/bug/panels/active_record_panel_spec.rb +30 -0
  74. data/spec/rack/bug/panels/cache_panel_spec.rb +167 -0
  75. data/spec/rack/bug/panels/log_panel_spec.rb +43 -0
  76. data/spec/rack/bug/panels/memory_panel_spec.rb +22 -0
  77. data/spec/rack/bug/panels/rails_info_panel_spec.rb +40 -0
  78. data/spec/rack/bug/panels/redis_panel_spec.rb +69 -0
  79. data/spec/rack/bug/panels/sql_panel_spec.rb +146 -0
  80. data/spec/rack/bug/panels/templates_panel_spec.rb +71 -0
  81. data/spec/rack/bug/panels/timer_panel_spec.rb +38 -0
  82. data/spec/rack/bug_spec.rb +137 -0
  83. data/spec/rcov.opts +1 -0
  84. data/spec/spec.opts +1 -0
  85. data/spec/spec_helper.rb +44 -0
  86. metadata +201 -0
@@ -0,0 +1,71 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
+
3
+ class Rack::Bug
4
+ describe TemplatesPanel do
5
+ before do
6
+ TemplatesPanel.reset
7
+ rack_env "rack-bug.panel_classes", [TemplatesPanel]
8
+ end
9
+
10
+ describe "heading" do
11
+ it "displays the total rendering time" do
12
+ response = get_via_rack "/"
13
+ response.should have_heading("Templates: 0.00ms")
14
+ end
15
+ end
16
+
17
+ describe "content" do
18
+ it "displays the template paths" do
19
+ TemplatesPanel.record("users/show") { }
20
+ response = get_via_rack "/"
21
+ response.should contain("users/show")
22
+ end
23
+
24
+ it "displays the template children" do
25
+ TemplatesPanel.record("users/show") do
26
+ TemplatesPanel.record("users/toolbar") { }
27
+ end
28
+
29
+ response = get_via_rack "/"
30
+ response.should have_selector("li", :content => "users/show") do |li|
31
+ li.should contain("users/toolbar")
32
+ end
33
+ end
34
+
35
+ context "for templates that rendered templates" do
36
+ it "displays the total time" do
37
+ TemplatesPanel.record("users/show") do
38
+ TemplatesPanel.record("users/toolbar") { }
39
+ end
40
+
41
+ response = get_via_rack "/"
42
+ response.should have_selector("li", :content => "users/show") do |li|
43
+ li.should contain(TIME_MS_REGEXP)
44
+ end
45
+ end
46
+
47
+ it "displays the exclusive time" do
48
+ TemplatesPanel.record("users/show") do
49
+ TemplatesPanel.record("users/toolbar") { }
50
+ end
51
+
52
+ response = get_via_rack "/"
53
+ response.should have_selector("li", :content => "users/show") do |li|
54
+ li.should contain(/\d\.\d{2} exclusive/)
55
+ end
56
+ end
57
+ end
58
+
59
+ context "for leaf templates" do
60
+ it "does not display the exclusive time" do
61
+ TemplatesPanel.record("users/show") { }
62
+
63
+ response = get_via_rack "/"
64
+ response.should contain("users/show") do |li|
65
+ li.should_not contain("exclusive")
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,38 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
+
3
+ class Rack::Bug
4
+ describe TimerPanel do
5
+ before do
6
+ rack_env "rack-bug.panel_classes", [TimerPanel]
7
+ end
8
+
9
+ describe "heading" do
10
+ it "displays the elapsed time" do
11
+ response = get_via_rack "/"
12
+ response.should have_heading(TIME_MS_REGEXP)
13
+ end
14
+ end
15
+
16
+ describe "content" do
17
+ it "displays the user CPU time" do
18
+ response = get_via_rack "/"
19
+ response.should have_row("#timer", "User CPU time", TIME_MS_REGEXP)
20
+ end
21
+
22
+ it "displays the system CPU time" do
23
+ response = get_via_rack "/"
24
+ response.should have_row("#timer", "System CPU time", TIME_MS_REGEXP)
25
+ end
26
+
27
+ it "displays the total CPU time" do
28
+ response = get_via_rack "/"
29
+ response.should have_row("#timer", "Total CPU time", TIME_MS_REGEXP)
30
+ end
31
+
32
+ it "displays the elapsed time" do
33
+ response = get_via_rack "/"
34
+ response.should have_row("#timer", "Elapsed time", TIME_MS_REGEXP)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,137 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe Rack::Bug do
4
+ it "inserts the Rack::Bug toolbar" do
5
+ response = get "/"
6
+ response.should have_selector("div#rack_bug")
7
+ end
8
+
9
+ it "updates the Content-Length" do
10
+ response = get "/"
11
+ response["Content-Length"].should == response.body.size.to_s
12
+ end
13
+
14
+ it "serves the Rack::Bug assets under /__rack_bug__/" do
15
+ response = get "/__rack_bug__/bug.css"
16
+ response.should be_ok
17
+ end
18
+
19
+ it "modifies HTML responses with a charset" do
20
+ response = get "/", :content_type => "application/xhtml+xml; charset=utf-8"
21
+ response.should have_selector("div#rack_bug")
22
+ end
23
+
24
+ it "does not modify XMLHttpRequest responses" do
25
+ response = get "/", {}, { :xhr => true }
26
+ response.should_not have_selector("div#rack_bug")
27
+ end
28
+
29
+ it "modifies XHTML responses" do
30
+ response = get "/", :content_type => "application/xhtml+xml"
31
+ response.should have_selector("div#rack_bug")
32
+ end
33
+
34
+ it "does not modify non-HTML responses" do
35
+ response = get "/", :content_type => "text/csv"
36
+ response.should_not have_selector("div#rack_bug")
37
+ end
38
+
39
+ it "does not modify server errors" do
40
+ app.disable :raise_errors
41
+ response = get "/error"
42
+ app.enable :raise_errors
43
+ response.should_not have_selector("div#rack_bug")
44
+ end
45
+
46
+ context "redirected when not configured to intercept redirects" do
47
+ it "passes the redirect unmodified" do
48
+ response = get "/redirect"
49
+ response.status.should == 302
50
+ end
51
+
52
+ it "does not show the interception page" do
53
+ response = get "/redirect"
54
+ response.body.should_not contain("Location: /")
55
+ end
56
+
57
+ it "does not insert the toolbar" do
58
+ header 'cookie', ""
59
+ response = get "/redirect"
60
+ response.should_not have_selector("div#rack_bug")
61
+ end
62
+
63
+ it "does not insert the toolbar if even toolbar requested" do
64
+ response = get "/redirect"
65
+ response.should_not have_selector("div#rack_bug")
66
+ end
67
+ end
68
+
69
+ context "redirected when configured to intercept redirects" do
70
+ it "shows the interception page" do
71
+ response = get "/redirect", {}, "rack-bug.intercept_redirects" => true
72
+ response.should have_selector("div#rack_bug")
73
+ end
74
+
75
+ it "should provide a link to the target URL" do
76
+ response = get "/redirect", {}, "rack-bug.intercept_redirects" => true
77
+ response.should have_selector("a[href='/']")
78
+ end
79
+
80
+ it "inserts the toolbar if requested" do
81
+ response = get "/redirect", {}, "rack-bug.intercept_redirects" => true
82
+ response.should have_selector("div#rack_bug")
83
+ end
84
+
85
+ it "does not inserts the toolbar if not requested" do
86
+ header 'cookie', ""
87
+ response = get "/redirect", {}, "rack-bug.intercept_redirects" => true
88
+ response.should_not have_selector("div#rack_bug")
89
+ end
90
+ end
91
+
92
+ context "configured with an IP address restriction" do
93
+ before do
94
+ rack_env "rack-bug.ip_masks", [IPAddr.new("127.0.0.1/255.255.255.0")]
95
+ end
96
+
97
+ it "inserts the Rack::Bug toolbar when the IP matches" do
98
+ response = get_via_rack "/", {}, "REMOTE_ADDR" => "127.0.0.2"
99
+ response.should have_selector("div#rack_bug")
100
+ end
101
+
102
+ it "is disabled when the IP doesn't match" do
103
+ response = get_via_rack "/", {}, "REMOTE_ADDR" => "128.0.0.1"
104
+ response.should_not have_selector("div#rack_bug")
105
+ end
106
+
107
+ it "doesn't use any panels" do
108
+ DummyPanel.should_not_receive(:new)
109
+ rack_env "rack-bug.panel_classes", [DummyPanel]
110
+ get_via_rack "/", {}, "REMOTE_ADDR" => "128.0.0.1"
111
+ end
112
+ end
113
+
114
+ context "configured with a password" do
115
+ before do
116
+ rack_env "rack-bug.password", "secret"
117
+ end
118
+
119
+ it "inserts the Rack::Bug toolbar when the password matches" do
120
+ sha = "545049d1c5e2a6e0dfefd37f9a9e0beb95241935"
121
+ set_cookie ["rack_bug_enabled=1", "rack_bug_password=#{sha}"]
122
+ response = get_via_rack "/"
123
+ response.should have_selector("div#rack_bug")
124
+ end
125
+
126
+ it "is disabled when the password doesn't match" do
127
+ response = get_via_rack "/"
128
+ response.should_not have_selector("div#rack_bug")
129
+ end
130
+
131
+ it "doesn't use any panels" do
132
+ DummyPanel.should_not_receive(:new)
133
+ rack_env "rack-bug.panel_classes", [DummyPanel]
134
+ get_via_rack "/"
135
+ end
136
+ end
137
+ end
@@ -0,0 +1 @@
1
+ -x gems,spec\/
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,44 @@
1
+ require "rubygems"
2
+ require "spec"
3
+ require "webrat"
4
+ require "rack/test"
5
+
6
+ RAILS_ENV = "test"
7
+
8
+ $LOAD_PATH.unshift File.dirname(File.dirname(__FILE__)) + '/lib'
9
+ $LOAD_PATH.unshift File.dirname(File.dirname(__FILE__))
10
+
11
+ require "rack/bug"
12
+ require "spec/fixtures/sample_app"
13
+ require "spec/fixtures/dummy_panel"
14
+ require "spec/custom_matchers"
15
+
16
+ Spec::Runner.configure do |config|
17
+ TIME_MS_REGEXP = /\d+\.\d{2}ms/
18
+
19
+ config.include Rack::Test::Methods
20
+ config.include Webrat::Matchers
21
+ config.include CustomMatchers
22
+
23
+ config.before do
24
+ # This allows specs to record data outside the request
25
+ Rack::Bug.enable
26
+
27
+ # Set the cookie that triggers Rack::Bug under normal conditions
28
+ set_cookie "rack_bug_enabled=1"
29
+ end
30
+
31
+ def app
32
+ SampleApp
33
+ end
34
+
35
+ def rack_env(key, value)
36
+ @rack_env ||= {}
37
+ @rack_env[key] = value
38
+ end
39
+
40
+ def get_via_rack(uri, params = {}, env = {}, &block)
41
+ env = env.merge(@rack_env) if @rack_env
42
+ get(uri, params, env, &block)
43
+ end
44
+ end
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ghazel-rack-bug
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Bryan Helmkamp
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-09-03 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "1.0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: webrat
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rspec
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: sinatra
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: git
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ description:
66
+ email: bryan@brynary.com
67
+ executables: []
68
+
69
+ extensions: []
70
+
71
+ extra_rdoc_files:
72
+ - README.md
73
+ - MIT-LICENSE.txt
74
+ files:
75
+ - .gitignore
76
+ - History.txt
77
+ - MIT-LICENSE.txt
78
+ - README.md
79
+ - Rakefile
80
+ - Thorfile
81
+ - lib/rack/bug.rb
82
+ - lib/rack/bug/autoloading.rb
83
+ - lib/rack/bug/filtered_backtrace.rb
84
+ - lib/rack/bug/options.rb
85
+ - lib/rack/bug/panel.rb
86
+ - lib/rack/bug/panel_app.rb
87
+ - lib/rack/bug/panels/active_record_panel.rb
88
+ - lib/rack/bug/panels/active_record_panel/activerecord_extensions.rb
89
+ - lib/rack/bug/panels/cache_panel.rb
90
+ - lib/rack/bug/panels/cache_panel/dalli_extension.rb
91
+ - lib/rack/bug/panels/cache_panel/memcache_extension.rb
92
+ - lib/rack/bug/panels/cache_panel/panel_app.rb
93
+ - lib/rack/bug/panels/cache_panel/stats.rb
94
+ - lib/rack/bug/panels/log_panel.rb
95
+ - lib/rack/bug/panels/log_panel/logger_extension.rb
96
+ - lib/rack/bug/panels/memory_panel.rb
97
+ - lib/rack/bug/panels/rails_info_panel.rb
98
+ - lib/rack/bug/panels/redis_panel.rb
99
+ - lib/rack/bug/panels/redis_panel/redis_extension.rb
100
+ - lib/rack/bug/panels/redis_panel/stats.rb
101
+ - lib/rack/bug/panels/request_variables_panel.rb
102
+ - lib/rack/bug/panels/sphinx_panel.rb
103
+ - lib/rack/bug/panels/sphinx_panel/sphinx_extension.rb
104
+ - lib/rack/bug/panels/sphinx_panel/stats.rb
105
+ - lib/rack/bug/panels/sql_panel.rb
106
+ - lib/rack/bug/panels/sql_panel/panel_app.rb
107
+ - lib/rack/bug/panels/sql_panel/query.rb
108
+ - lib/rack/bug/panels/sql_panel/sql_extension.rb
109
+ - lib/rack/bug/panels/templates_panel.rb
110
+ - lib/rack/bug/panels/templates_panel/actionview_extension.rb
111
+ - lib/rack/bug/panels/templates_panel/rendering.rb
112
+ - lib/rack/bug/panels/templates_panel/trace.rb
113
+ - lib/rack/bug/panels/timer_panel.rb
114
+ - lib/rack/bug/params_signature.rb
115
+ - lib/rack/bug/public/__rack_bug__/bookmarklet.html
116
+ - lib/rack/bug/public/__rack_bug__/bookmarklet.js
117
+ - lib/rack/bug/public/__rack_bug__/bug.css
118
+ - lib/rack/bug/public/__rack_bug__/bug.js
119
+ - lib/rack/bug/public/__rack_bug__/jquery-1.3.2.js
120
+ - lib/rack/bug/public/__rack_bug__/jquery.tablesorter.min.js
121
+ - lib/rack/bug/public/__rack_bug__/spinner.gif
122
+ - lib/rack/bug/rack_static_bug_avoider.rb
123
+ - lib/rack/bug/redirect_interceptor.rb
124
+ - lib/rack/bug/render.rb
125
+ - lib/rack/bug/toolbar.rb
126
+ - lib/rack/bug/views/error.html.erb
127
+ - lib/rack/bug/views/panels/active_record.html.erb
128
+ - lib/rack/bug/views/panels/cache.html.erb
129
+ - lib/rack/bug/views/panels/execute_sql.html.erb
130
+ - lib/rack/bug/views/panels/explain_sql.html.erb
131
+ - lib/rack/bug/views/panels/log.html.erb
132
+ - lib/rack/bug/views/panels/profile_sql.html.erb
133
+ - lib/rack/bug/views/panels/rails_info.html.erb
134
+ - lib/rack/bug/views/panels/redis.html.erb
135
+ - lib/rack/bug/views/panels/request_variables.html.erb
136
+ - lib/rack/bug/views/panels/sphinx.html.erb
137
+ - lib/rack/bug/views/panels/sql.html.erb
138
+ - lib/rack/bug/views/panels/templates.html.erb
139
+ - lib/rack/bug/views/panels/timer.html.erb
140
+ - lib/rack/bug/views/panels/view_cache.html.erb
141
+ - lib/rack/bug/views/redirect.html.erb
142
+ - lib/rack/bug/views/toolbar.html.erb
143
+ - rack-bug.gemspec
144
+ - spec/fixtures/config.ru
145
+ - spec/fixtures/dummy_panel.rb
146
+ - spec/fixtures/sample_app.rb
147
+ - spec/rack/bug/panels/active_record_panel_spec.rb
148
+ - spec/rack/bug/panels/cache_panel_spec.rb
149
+ - spec/rack/bug/panels/log_panel_spec.rb
150
+ - spec/rack/bug/panels/memory_panel_spec.rb
151
+ - spec/rack/bug/panels/rails_info_panel_spec.rb
152
+ - spec/rack/bug/panels/redis_panel_spec.rb
153
+ - spec/rack/bug/panels/sql_panel_spec.rb
154
+ - spec/rack/bug/panels/templates_panel_spec.rb
155
+ - spec/rack/bug/panels/timer_panel_spec.rb
156
+ - spec/rack/bug_spec.rb
157
+ - spec/rcov.opts
158
+ - spec/spec.opts
159
+ - spec/spec_helper.rb
160
+ has_rdoc: true
161
+ homepage: http://github.com/brynary/rack-bug
162
+ licenses: []
163
+
164
+ post_install_message:
165
+ rdoc_options: []
166
+
167
+ require_paths:
168
+ - lib
169
+ required_ruby_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: "0"
174
+ version:
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: "0"
180
+ version:
181
+ requirements: []
182
+
183
+ rubyforge_project: rack-bug
184
+ rubygems_version: 1.3.5
185
+ signing_key:
186
+ specification_version: 3
187
+ summary: Debugging toolbar for Rack applications implemented as middleware
188
+ test_files:
189
+ - spec/fixtures/dummy_panel.rb
190
+ - spec/fixtures/sample_app.rb
191
+ - spec/rack/bug/panels/active_record_panel_spec.rb
192
+ - spec/rack/bug/panels/cache_panel_spec.rb
193
+ - spec/rack/bug/panels/log_panel_spec.rb
194
+ - spec/rack/bug/panels/memory_panel_spec.rb
195
+ - spec/rack/bug/panels/rails_info_panel_spec.rb
196
+ - spec/rack/bug/panels/redis_panel_spec.rb
197
+ - spec/rack/bug/panels/sql_panel_spec.rb
198
+ - spec/rack/bug/panels/templates_panel_spec.rb
199
+ - spec/rack/bug/panels/timer_panel_spec.rb
200
+ - spec/rack/bug_spec.rb
201
+ - spec/spec_helper.rb