rack-mini-profiler 2.0.1 → 2.2.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -0
- data/README.md +75 -30
- data/lib/html/includes.css +42 -9
- data/lib/html/includes.js +105 -29
- data/lib/html/includes.scss +35 -4
- data/lib/html/includes.tmpl +94 -4
- data/lib/html/profile_handler.js +1 -1
- data/lib/html/rack-mini-profiler.css +3 -0
- data/lib/html/rack-mini-profiler.js +2 -0
- data/lib/html/vendor.js +11 -3
- data/lib/mini_profiler/asset_version.rb +1 -1
- data/lib/mini_profiler/client_settings.rb +1 -0
- data/lib/mini_profiler/config.rb +22 -2
- data/lib/mini_profiler/profiler.rb +183 -23
- data/lib/mini_profiler/profiling_methods.rb +8 -1
- data/lib/mini_profiler/snapshots_transporter.rb +84 -0
- data/lib/mini_profiler/storage/abstract_store.rb +78 -0
- data/lib/mini_profiler/storage/memory_store.rb +54 -5
- data/lib/mini_profiler/storage/redis_store.rb +136 -2
- data/lib/mini_profiler/timer_struct/page.rb +52 -2
- data/lib/mini_profiler/timer_struct/sql.rb +2 -2
- data/lib/mini_profiler/version.rb +1 -1
- data/lib/mini_profiler_rails/railtie.rb +13 -0
- data/lib/mini_profiler_rails/railtie_methods.rb +6 -0
- data/lib/patches/net_patches.rb +18 -8
- data/lib/prepend_net_http_patch.rb +5 -0
- data/lib/rack-mini-profiler.rb +1 -0
- data/rack-mini-profiler.gemspec +5 -2
- metadata +66 -20
@@ -38,12 +38,12 @@ module Rack
|
|
38
38
|
start_millis = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) * 1000).to_i - page[:started]) - duration_ms
|
39
39
|
super(
|
40
40
|
execute_type: 3, # TODO
|
41
|
-
formatted_command_string: ERB::Util.html_escape(query),
|
41
|
+
formatted_command_string: query ? ERB::Util.html_escape(query) : nil,
|
42
42
|
stack_trace_snippet: stack_trace,
|
43
43
|
start_milliseconds: start_millis,
|
44
44
|
duration_milliseconds: duration_ms,
|
45
45
|
first_fetch_duration_milliseconds: duration_ms,
|
46
|
-
parameters: trim_binds(params),
|
46
|
+
parameters: query ? trim_binds(params) : nil,
|
47
47
|
parent_timing_id: nil,
|
48
48
|
is_duplicate: false
|
49
49
|
)
|
@@ -30,6 +30,8 @@ module Rack::MiniProfilerRails
|
|
30
30
|
|
31
31
|
if serves_static_assets?(app)
|
32
32
|
c.skip_paths << app.config.assets.prefix
|
33
|
+
wp_assets_path = get_webpacker_assets_path()
|
34
|
+
c.skip_paths << wp_assets_path if wp_assets_path
|
33
35
|
end
|
34
36
|
|
35
37
|
unless Rails.env.development? || Rails.env.test?
|
@@ -116,6 +118,17 @@ module Rack::MiniProfilerRails
|
|
116
118
|
@already_initialized = true
|
117
119
|
end
|
118
120
|
|
121
|
+
def self.create_engine
|
122
|
+
return if defined?(Rack::MiniProfilerRails::Engine)
|
123
|
+
klass = Class.new(::Rails::Engine) do
|
124
|
+
engine_name 'rack-mini-profiler'
|
125
|
+
config.assets.paths << File.expand_path('../../html', __FILE__)
|
126
|
+
config.assets.precompile << 'rack-mini-profiler.js'
|
127
|
+
config.assets.precompile << 'rack-mini-profiler.css'
|
128
|
+
end
|
129
|
+
Rack::MiniProfilerRails.const_set("Engine", klass)
|
130
|
+
end
|
131
|
+
|
119
132
|
def self.subscribe(event, &blk)
|
120
133
|
if ActiveSupport::Notifications.respond_to?(:monotonic_subscribe)
|
121
134
|
ActiveSupport::Notifications.monotonic_subscribe(event) { |*args| blk.call(*args) }
|
@@ -51,5 +51,11 @@ module Rack::MiniProfilerRailsMethods
|
|
51
51
|
child[start] + child[duration] <= node[start] + node[duration]
|
52
52
|
end
|
53
53
|
|
54
|
+
def get_webpacker_assets_path
|
55
|
+
if defined?(Webpacker) && Webpacker.config.config_path.exist?
|
56
|
+
Webpacker.config.public_output_path.to_s.gsub(Webpacker.config.public_path.to_s, "")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
54
60
|
extend self
|
55
61
|
end
|
data/lib/patches/net_patches.rb
CHANGED
@@ -2,15 +2,25 @@
|
|
2
2
|
|
3
3
|
if (defined?(Net) && defined?(Net::HTTP))
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
request
|
8
|
-
|
9
|
-
|
5
|
+
if defined?(Rack::MINI_PROFILER_PREPEND_NET_HTTP_PATCH)
|
6
|
+
module NetHTTPWithMiniProfiler
|
7
|
+
def request(request, *args, &block)
|
8
|
+
Rack::MiniProfiler.step("Net::HTTP #{request.method} #{request.path}") do
|
9
|
+
super
|
10
|
+
end
|
10
11
|
end
|
11
12
|
end
|
12
|
-
|
13
|
-
|
13
|
+
Net::HTTP.prepend(NetHTTPWithMiniProfiler)
|
14
|
+
else
|
15
|
+
Net::HTTP.class_eval do
|
16
|
+
def request_with_mini_profiler(*args, &block)
|
17
|
+
request = args[0]
|
18
|
+
Rack::MiniProfiler.step("Net::HTTP #{request.method} #{request.path}") do
|
19
|
+
request_without_mini_profiler(*args, &block)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
alias request_without_mini_profiler request
|
23
|
+
alias request request_with_mini_profiler
|
24
|
+
end
|
14
25
|
end
|
15
|
-
|
16
26
|
end
|
data/lib/rack-mini-profiler.rb
CHANGED
@@ -26,6 +26,7 @@ require 'mini_profiler/profiling_methods'
|
|
26
26
|
require 'mini_profiler/context'
|
27
27
|
require 'mini_profiler/client_settings'
|
28
28
|
require 'mini_profiler/gc_profiler'
|
29
|
+
require 'mini_profiler/snapshots_transporter'
|
29
30
|
require 'mini_profiler/profiler'
|
30
31
|
require 'patches/sql_patches'
|
31
32
|
require 'patches/net_patches'
|
data/rack-mini-profiler.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
"CHANGELOG.md"
|
22
22
|
]
|
23
23
|
s.add_runtime_dependency 'rack', '>= 1.2.0'
|
24
|
-
s.required_ruby_version = '>= 2.
|
24
|
+
s.required_ruby_version = '>= 2.4.0'
|
25
25
|
|
26
26
|
s.metadata = {
|
27
27
|
'source_code_uri' => 'https://github.com/MiniProfiler/rack-mini-profiler',
|
@@ -30,7 +30,6 @@ Gem::Specification.new do |s|
|
|
30
30
|
|
31
31
|
s.add_development_dependency 'rake', '< 11'
|
32
32
|
s.add_development_dependency 'rack-test'
|
33
|
-
s.add_development_dependency 'activerecord', '~> 3.0'
|
34
33
|
s.add_development_dependency 'dalli'
|
35
34
|
s.add_development_dependency 'rspec', '~> 3.6.0'
|
36
35
|
s.add_development_dependency 'redis'
|
@@ -40,6 +39,10 @@ Gem::Specification.new do |s|
|
|
40
39
|
s.add_development_dependency 'mini_racer'
|
41
40
|
s.add_development_dependency 'nokogiri'
|
42
41
|
s.add_development_dependency 'rubocop-discourse'
|
42
|
+
s.add_development_dependency 'listen'
|
43
|
+
s.add_development_dependency 'webpacker', '~> 5.1'
|
44
|
+
s.add_development_dependency 'rails', '~> 5.1'
|
45
|
+
s.add_development_dependency 'webmock', '3.9.1'
|
43
46
|
|
44
47
|
s.require_paths = ["lib"]
|
45
48
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-mini-profiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
8
8
|
- Robin Ward
|
9
9
|
- Aleks Totic
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-
|
13
|
+
date: 2020-10-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -54,20 +54,6 @@ dependencies:
|
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0'
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: activerecord
|
59
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '3.0'
|
64
|
-
type: :development
|
65
|
-
prerelease: false
|
66
|
-
version_requirements: !ruby/object:Gem::Requirement
|
67
|
-
requirements:
|
68
|
-
- - "~>"
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '3.0'
|
71
57
|
- !ruby/object:Gem::Dependency
|
72
58
|
name: dalli
|
73
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,6 +180,62 @@ dependencies:
|
|
194
180
|
- - ">="
|
195
181
|
- !ruby/object:Gem::Version
|
196
182
|
version: '0'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: listen
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
type: :development
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0'
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
name: webpacker
|
199
|
+
requirement: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - "~>"
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: '5.1'
|
204
|
+
type: :development
|
205
|
+
prerelease: false
|
206
|
+
version_requirements: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - "~>"
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '5.1'
|
211
|
+
- !ruby/object:Gem::Dependency
|
212
|
+
name: rails
|
213
|
+
requirement: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - "~>"
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '5.1'
|
218
|
+
type: :development
|
219
|
+
prerelease: false
|
220
|
+
version_requirements: !ruby/object:Gem::Requirement
|
221
|
+
requirements:
|
222
|
+
- - "~>"
|
223
|
+
- !ruby/object:Gem::Version
|
224
|
+
version: '5.1'
|
225
|
+
- !ruby/object:Gem::Dependency
|
226
|
+
name: webmock
|
227
|
+
requirement: !ruby/object:Gem::Requirement
|
228
|
+
requirements:
|
229
|
+
- - '='
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: 3.9.1
|
232
|
+
type: :development
|
233
|
+
prerelease: false
|
234
|
+
version_requirements: !ruby/object:Gem::Requirement
|
235
|
+
requirements:
|
236
|
+
- - '='
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: 3.9.1
|
197
239
|
description: Profiling toolkit for Rack applications with Rails integration. Client
|
198
240
|
Side profiling, DB profiling and Server profiling.
|
199
241
|
email: sam.saffron@gmail.com
|
@@ -216,6 +258,8 @@ files:
|
|
216
258
|
- lib/html/includes.tmpl
|
217
259
|
- lib/html/pretty-print.js
|
218
260
|
- lib/html/profile_handler.js
|
261
|
+
- lib/html/rack-mini-profiler.css
|
262
|
+
- lib/html/rack-mini-profiler.js
|
219
263
|
- lib/html/share.html
|
220
264
|
- lib/html/vendor.js
|
221
265
|
- lib/mini_profiler/asset_version.rb
|
@@ -225,6 +269,7 @@ files:
|
|
225
269
|
- lib/mini_profiler/gc_profiler.rb
|
226
270
|
- lib/mini_profiler/profiler.rb
|
227
271
|
- lib/mini_profiler/profiling_methods.rb
|
272
|
+
- lib/mini_profiler/snapshots_transporter.rb
|
228
273
|
- lib/mini_profiler/storage/abstract_store.rb
|
229
274
|
- lib/mini_profiler/storage/file_store.rb
|
230
275
|
- lib/mini_profiler/storage/memcache_store.rb
|
@@ -253,6 +298,7 @@ files:
|
|
253
298
|
- lib/patches/db/sequel.rb
|
254
299
|
- lib/patches/net_patches.rb
|
255
300
|
- lib/patches/sql_patches.rb
|
301
|
+
- lib/prepend_net_http_patch.rb
|
256
302
|
- lib/rack-mini-profiler.rb
|
257
303
|
- rack-mini-profiler.gemspec
|
258
304
|
homepage: https://miniprofiler.com
|
@@ -261,7 +307,7 @@ licenses:
|
|
261
307
|
metadata:
|
262
308
|
source_code_uri: https://github.com/MiniProfiler/rack-mini-profiler
|
263
309
|
changelog_uri: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md
|
264
|
-
post_install_message:
|
310
|
+
post_install_message:
|
265
311
|
rdoc_options: []
|
266
312
|
require_paths:
|
267
313
|
- lib
|
@@ -269,7 +315,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
269
315
|
requirements:
|
270
316
|
- - ">="
|
271
317
|
- !ruby/object:Gem::Version
|
272
|
-
version: 2.
|
318
|
+
version: 2.4.0
|
273
319
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
274
320
|
requirements:
|
275
321
|
- - ">="
|
@@ -277,7 +323,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
277
323
|
version: '0'
|
278
324
|
requirements: []
|
279
325
|
rubygems_version: 3.0.3
|
280
|
-
signing_key:
|
326
|
+
signing_key:
|
281
327
|
specification_version: 4
|
282
328
|
summary: Profiles loading speed for rack applications.
|
283
329
|
test_files: []
|