rack-webprofiler 0.1.0.pre.beta1 → 0.1.0.pre.beta2

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 (38) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +7 -17
  3. data/lib/rack/templates/assets/css/profiler.css +1 -1
  4. data/lib/rack/templates/assets/css/rwpt.css +1 -1
  5. data/lib/rack/templates/assets/sass/_highlight.scss +63 -0
  6. data/lib/rack/templates/assets/sass/_variables.scss +1 -0
  7. data/lib/rack/templates/assets/sass/profiler.scss +1 -1
  8. data/lib/rack/templates/assets/sass/rwpt.scss +27 -9
  9. data/lib/rack/templates/async.erb +8 -8
  10. data/lib/rack/templates/panel/_sidebar.erb +3 -23
  11. data/lib/rack/templates/panel/index.erb +18 -6
  12. data/lib/rack/templates/panel/layout.erb +9 -5
  13. data/lib/rack/templates/panel/show.erb +25 -7
  14. data/lib/rack/templates/profiler.erb +15 -12
  15. data/lib/rack/web_profiler/collector/rack/request_collector.rb +38 -35
  16. data/lib/rack/web_profiler/collector/ruby_collector.rb +9 -7
  17. data/lib/rack/web_profiler/collector/time_collector.rb +2 -2
  18. data/lib/rack/web_profiler/collector/view.rb +44 -0
  19. data/lib/rack/web_profiler/collector.rb +29 -16
  20. data/lib/rack/web_profiler/config.rb +0 -10
  21. data/lib/rack/web_profiler/controller.rb +69 -64
  22. data/lib/rack/web_profiler/engine.rb +15 -6
  23. data/lib/rack/web_profiler/model/collection_record.rb +1 -0
  24. data/lib/rack/web_profiler/request.rb +5 -1
  25. data/lib/rack/web_profiler/router.rb +1 -1
  26. data/lib/rack/web_profiler/version.rb +1 -1
  27. data/lib/rack/web_profiler/view.rb +236 -0
  28. data/lib/rack/web_profiler.rb +34 -17
  29. data/rack-webprofiler.gemspec +1 -0
  30. metadata +19 -10
  31. data/lib/rack/web_profiler/auto_configure/rails.rb +0 -12
  32. data/lib/rack/web_profiler/collector/rails/active_record_collector.rb +0 -25
  33. data/lib/rack/web_profiler/collector/rails/logger_collector.rb +0 -22
  34. data/lib/rack/web_profiler/collector/rails/rails_collector.rb +0 -25
  35. data/lib/rack/web_profiler/collector/rails/request_collector.rb +0 -50
  36. data/lib/rack/web_profiler/collector/sinatra/request_collector.rb +0 -216
  37. data/lib/rack/web_profiler/collector/sinatra/sinatra_collector.rb +0 -25
  38. data/lib/rack/web_profiler/erb.rb +0 -9
@@ -1,216 +0,0 @@
1
- module Rack
2
- class WebProfiler::Collector::Sinatra::RequestCollector < WebProfiler::Collector::Rack::RequestCollector
3
- include Rack::WebProfiler::Collector::DSL
4
-
5
- icon <<-'ICON'
6
- data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+T3ZhbCA3IENvcHkgMjwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9IkRlc2t0b3AtMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwLjAwMDAwMCwgLTEzMC4wMDAwMDApIiBmaWxsPSIjNTg1NDczIj4gICAgICAgICAgICA8ZyBpZD0iUmVxdWVzdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDEyMC4wMDAwMDApIj4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTE3LjY3OTE5MTIsMTMuNDA2NDMyMiBDMTguMTAzNzAxMiwxMy4yNTUzNzMzIDE4LjU0NzA4OSwxMy4xNDQ1ODY0IDE5LjAwNDgzMTcsMTMuMDc4NjI3OCBMMTkuMDA0ODMxNywxMCBMMjAuOTk1MTY4MywxMCBMMjAuOTk1MTY4MywxMy4wNzg2Mjc4IEMyMS40NTI5MTEsMTMuMTQ0NTg2NCAyMS44OTYyOTg4LDEzLjI1NTM3MzMgMjIuMzIwODA4OCwxMy40MDY0MzIyIEwyMy43NjY1Mzg2LDEwLjY4NzQxIEwyNS41MjM5MDE1LDExLjYyMTgxNjUgTDI0LjA4MDM0MDcsMTQuMzM2NzU5NiBDMjQuNDU0NDUyLDE0LjYwOTU2NTUgMjQuODAwNTkwMywxNC45MTg5MDYzIDI1LjExMzU5ODIsMTUuMjU5NTg2NCBMMjcuNjI0NzkyLDEzLjUwMTIyOTYgTDI4Ljc2NjQwMjIsMTUuMTMxNjE3OSBMMjYuMjM5NDcyLDE2LjkwMDk5MzUgQzI2LjQ0Mjk1ODQsMTcuMzEyNjE1IDI2LjYwNzQ4OTQsMTcuNzQ3MjEzIDI2LjcyODIwMjgsMTguMTk5ODg5MyBMMjkuNzc1NjgxNCwxNy44MjU3MDU5IEwzMC4wMTgyNDI0LDE5LjgwMTIwNjkgTDI2Ljk2NDU5ODcsMjAuMTc2MTQ3MiBDMjYuOTU0Njg2MiwyMC42NDkzNjI3IDI2Ljg5ODI3NTUsMjEuMTExMDU1NiAyNi43OTk3ODQxLDIxLjU1Njc3NTkgTDI5LjY3NTIwODQsMjIuNjYwNTQ3OSBMMjguOTYxOTM1NiwyNC41MTg2ODcyIEwyNi4wOTg1NTE3LDIzLjQxOTUzNzEgQzI1Ljg3MzU5ODcsMjMuODI4ODI2IDI1LjYwOTIyNDgsMjQuMjEzMDczNSAyNS4zMTA1OTI0LDI0LjU2NzA3OTEgTDI3LjM2NTk4NjQsMjYuODQ5ODI1NCBMMjUuODg2ODc4LDI4LjE4MTYyMDYgTDIzLjgyNDc3MTQsMjUuODkxNDE5MSBDMjMuNDQ1Mzk3NywyNi4xNDI5NDcyIDIzLjA0MDE3MDgsMjYuMzU4MTMyMyAyMi42MTM5NzI3LDI2LjUzMjA1NjQgTDIzLjM1ODEzMTgsMjkuNTE2NzE1NCBMMjEuNDI2OTE2NiwyOS45OTgyMjE0IEwyMC42ODE3ODQ0LDI3LjAwOTY1OTQgQzIwLjQ1NzQ2NzgsMjcuMDMxNjA5MyAyMC4yMzAwMzYsMjcuMDQyODQxNiAyMCwyNy4wNDI4NDE2IEMxOS43Njk5NjQsMjcuMDQyODQxNiAxOS41NDI1MzIyLDI3LjAzMTYwOTMgMTkuMzE4MjE1NiwyNy4wMDk2NTk0IEwxOC41NzMwODM0LDI5Ljk5ODIyMTQgTDE2LjY0MTg2ODIsMjkuNTE2NzE1NCBMMTcuMzg2MDI3MywyNi41MzIwNTY0IEMxNi45NTk4MjkyLDI2LjM1ODEzMjMgMTYuNTU0NjAyMywyNi4xNDI5NDcyIDE2LjE3NTIyODYsMjUuODkxNDE5MSBMMTQuMTEzMTIyLDI4LjE4MTYyMDYgTDEyLjYzNDAxMzYsMjYuODQ5ODI1NCBMMTQuNjg5NDA3NiwyNC41NjcwNzkxIEMxNC4zOTA3NzUyLDI0LjIxMzA3MzUgMTQuMTI2NDAxMywyMy44Mjg4MjYgMTMuOTAxNDQ4MywyMy40MTk1MzcxIEwxMS4wMzgwNjQ0LDI0LjUxODY4NzIgTDEwLjMyNDc5MTYsMjIuNjYwNTQ3OSBMMTMuMjAwMjE1OSwyMS41NTY3NzU5IEMxMy4xMDE3MjQ1LDIxLjExMTA1NTYgMTMuMDQ1MzEzOCwyMC42NDkzNjI4IDEzLjAzNTQwMTMsMjAuMTc2MTQ3MyBMOS45ODE3NTc1OSwxOS44MDEyMDY5IEwxMC4yMjQzMTg2LDE3LjgyNTcwNTkgTDEzLjI3MTc5NzIsMTguMTk5ODg5MyBDMTMuMzkyNTEwNiwxNy43NDcyMTMgMTMuNTU3MDQxNiwxNy4zMTI2MTUgMTMuNzYwNTI4LDE2LjkwMDk5MzUgTDExLjIzMzU5NzgsMTUuMTMxNjE3OSBMMTIuMzc1MjA4LDEzLjUwMTIyOTYgTDE0Ljg4NjQwMTgsMTUuMjU5NTg2NCBDMTUuMTk5NDA5NywxNC45MTg5MDYzIDE1LjU0NTU0OCwxNC42MDk1NjU1IDE1LjkxOTY1OTMsMTQuMzM2NzU5NiBMMTQuNDc2MDk4NSwxMS42MjE4MTY1IEwxNi4yMzM0NjE0LDEwLjY4NzQxIEwxNy42NzkxOTEyLDEzLjQwNjQzMjIgWiBNMjAsMjMuMDMyNzYxMiBDMjEuNjQ4ODQ4OSwyMy4wMzI3NjEyIDIyLjk4NTUwNSwyMS42ODYyMzA2IDIyLjk4NTUwNSwyMC4wMjUyMDA5IEMyMi45ODU1MDUsMTguMzY0MTcxMyAyMS42NDg4NDg5LDE3LjAxNzY0MDYgMjAsMTcuMDE3NjQwNiBDMTguMzUxMTUxMSwxNy4wMTc2NDA2IDE3LjAxNDQ5NSwxOC4zNjQxNzEzIDE3LjAxNDQ5NSwyMC4wMjUyMDA5IEMxNy4wMTQ0OTUsMjEuNjg2MjMwNiAxOC4zNTExNTExLDIzLjAzMjc2MTIgMjAsMjMuMDMyNzYxMiBaIiBpZD0iT3ZhbC03LUNvcHktMiI+PC9wYXRoPiAgICAgICAgICAgIDwvZz4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==
7
- ICON
8
-
9
- collector_name "sinatra_request"
10
- position 2
11
-
12
- collect do |request, response|
13
- store :request_headers, get_request_headers(request)
14
- store :request_path, request.path
15
- store :request_method, request.request_method
16
- store :request_cookies, request.cookies
17
- store :request_get, request.GET
18
- store :request_post, request.POST
19
- store :request_session, request.session
20
- store :request_cookies, request.cookies
21
- store :request_body, request.body.gets
22
-
23
- # store :rack_env, get_env(request) #request.env.each { |k, v| v.to_s }
24
-
25
- store :response_status, response.status
26
- store :response_headers, response.headers
27
-
28
- if response.successful?
29
- status :success
30
- elsif response.redirection?
31
- status :warning
32
- else
33
- status :error
34
- end
35
- end
36
-
37
- template __FILE__, type: :DATA
38
-
39
- is_enabled? -> { defined? Sinatra }
40
-
41
- class << self
42
- # Get request headers.
43
- #
44
- # @return [Hash]
45
- def get_request_headers(request)
46
- request.env.select {|k,v| k.start_with? 'HTTP_'}
47
- .collect {|k,v| [k.sub(/^HTTP_/, ''), v]}
48
- .collect {|k,v| [k.split('_').collect(&:capitalize).join('-'), v]}
49
- end
50
- end
51
- end
52
- end
53
-
54
- __END__
55
- <% content_for :tab do %>
56
- <%= data[:response_status] %>
57
- <div style="display: none">
58
- <%= data[:request_method] %> <%= data[:request_path] %>
59
- <%= data[:response_status] %> | <%= Rack::Utils::HTTP_STATUS_CODES[data[:response_status].to_i] %>
60
- </div>
61
- <% end %>
62
-
63
- <% content_for :panel do %>
64
- <div class="block">
65
- <h3>GET</h3>
66
- <% unless data[:request_get].empty? %>
67
- <table>
68
- <thead>
69
- <tr>
70
- <th>Key</th>
71
- <th>Value</th>
72
- </tr>
73
- <thead>
74
- <tbody>
75
- <% data[:request_get].each do |k, v| %>
76
- <tr>
77
- <th><%= k %></th>
78
- <td class="code"><%= v %></td>
79
- </tr>
80
- <% end %>
81
- </tbody>
82
- </table>
83
- <% else %>
84
- <p><span class="text__no-value">No GET parameters</span></p>
85
- <% end %>
86
- </div>
87
-
88
- <div class="block">
89
- <h3>POST</h3>
90
- <% unless data[:request_post].empty? %>
91
- <table>
92
- <thead>
93
- <tr>
94
- <th>Key</th>
95
- <th>Value</th>
96
- </tr>
97
- <thead>
98
- <tbody>
99
- <% data[:request_post].each do |k, v| %>
100
- <tr>
101
- <th><%= k %></th>
102
- <td class="code"><%= v %></td>
103
- </tr>
104
- <% end %>
105
- </tbody>
106
- </table>
107
- <% else %>
108
- <p><span class="text__no-value">No POST parameters</span></p>
109
- <% end %>
110
- </div>
111
-
112
- <div class="block">
113
- <h3>Request headers</h3>
114
- <% unless data[:request_headers].empty? %>
115
- <table>
116
- <thead>
117
- <tr>
118
- <th>Name</th>
119
- <th>Version</th>
120
- </tr>
121
- <thead>
122
- <tbody>
123
- <% data[:request_headers].sort.each do |k, v| %>
124
- <tr>
125
- <th><%= k %></th>
126
- <td class="code"><%= v %></td>
127
- </tr>
128
- <% end %>
129
- </tbody>
130
- </table>
131
- <% else %>
132
- <p><span class="text__no-value">No request headers</span></p>
133
- <% end %>
134
- </div>
135
-
136
- <div class="block">
137
- <h3>Request content</h3>
138
- <% unless data[:request_body].nil? %>
139
- <code><%= data[:request_body] %></code>
140
- <% else %>
141
- <p><span class="text__no-value">No request content</span></p>
142
- <% end %>
143
- </div>
144
-
145
- <div class="block">
146
- <h3>Response headers</h3>
147
- <% unless data[:response_headers].empty? %>
148
- <table>
149
- <thead>
150
- <tr>
151
- <th>Name</th>
152
- <th>Version</th>
153
- </tr>
154
- <thead>
155
- <tbody>
156
- <% data[:response_headers].sort.each do |k, v| %>
157
- <tr>
158
- <th><%= k %></th>
159
- <td class="code"><%= v %></td>
160
- </tr>
161
- <% end %>
162
- </tbody>
163
- </table>
164
- <% else %>
165
- <p><span class="text__no-value">No response headers</span></p>
166
- <% end %>
167
- </div>
168
-
169
- <div class="block">
170
- <h3>Session</h3>
171
- <% unless data[:request_session].empty? %>
172
- <table>
173
- <thead>
174
- <tr>
175
- <th>Name</th>
176
- <th>Version</th>
177
- </tr>
178
- <thead>
179
- <tbody>
180
- <% data[:request_session].each do |k, v| %>
181
- <tr>
182
- <th><%= k %></th>
183
- <td class="code"><%= v %></td>
184
- </tr>
185
- <% end %>
186
- </tbody>
187
- </table>
188
- <% else %>
189
- <p><span class="text__no-value">No session data</span></p>
190
- <% end %>
191
- </div>
192
-
193
- <div class="block">
194
- <h3>Cookies</h3>
195
- <% unless data[:request_cookies].empty? %>
196
- <table>
197
- <thead>
198
- <tr>
199
- <th>Name</th>
200
- <th>Version</th>
201
- </tr>
202
- <thead>
203
- <tbody>
204
- <% data[:request_cookies].each do |k, v| %>
205
- <tr>
206
- <th><%= k %></th>
207
- <td class="code"><%= v %></td>
208
- </tr>
209
- <% end %>
210
- </tbody>
211
- </table>
212
- <% else %>
213
- <p><span class="text__no-value">No cookies data</span></p>
214
- <% end %>
215
- </div>
216
- <% end %>
@@ -1,25 +0,0 @@
1
- module Rack
2
- class WebProfiler::Collector::Sinatra::SinatraCollector
3
- include Rack::WebProfiler::Collector::DSL
4
-
5
- icon nil
6
-
7
- collector_name "sinatra"
8
- position 1
9
-
10
- collect do |_request, _response|
11
- store :sinatra_version, Sinatra::VERSION
12
- store :sinatra_env, Sinatra::Base.environment
13
- store :sinatra_doc_url, "http://www.sinatrarb.com/documentation.html"
14
- end
15
-
16
- template __FILE__, type: :DATA
17
-
18
- is_enabled? -> { defined? Sinatra }
19
- end
20
- end
21
-
22
- __END__
23
- <% content_for :tab do %>
24
- <%= data[:sinatra_version] %> | <%= data[:sinatra_env] %>
25
- <% end %>
@@ -1,9 +0,0 @@
1
- module Rack
2
- class WebProfiler
3
- # ERB
4
- class ERB
5
- def initialize(template, layout: nil)
6
- end
7
- end
8
- end
9
- end