rack-mini-profiler 2.0.2 → 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 +23 -0
- data/README.md +65 -30
- data/lib/html/includes.css +42 -9
- data/lib/html/includes.js +65 -3
- data/lib/html/includes.scss +35 -4
- data/lib/html/includes.tmpl +92 -2
- 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 +10 -2
- 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 +180 -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 +4 -2
- metadata +52 -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'
|
@@ -41,6 +40,9 @@ Gem::Specification.new do |s|
|
|
41
40
|
s.add_development_dependency 'nokogiri'
|
42
41
|
s.add_development_dependency 'rubocop-discourse'
|
43
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'
|
44
46
|
|
45
47
|
s.require_paths = ["lib"]
|
46
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
|
@@ -208,6 +194,48 @@ dependencies:
|
|
208
194
|
- - ">="
|
209
195
|
- !ruby/object:Gem::Version
|
210
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
|
211
239
|
description: Profiling toolkit for Rack applications with Rails integration. Client
|
212
240
|
Side profiling, DB profiling and Server profiling.
|
213
241
|
email: sam.saffron@gmail.com
|
@@ -230,6 +258,8 @@ files:
|
|
230
258
|
- lib/html/includes.tmpl
|
231
259
|
- lib/html/pretty-print.js
|
232
260
|
- lib/html/profile_handler.js
|
261
|
+
- lib/html/rack-mini-profiler.css
|
262
|
+
- lib/html/rack-mini-profiler.js
|
233
263
|
- lib/html/share.html
|
234
264
|
- lib/html/vendor.js
|
235
265
|
- lib/mini_profiler/asset_version.rb
|
@@ -239,6 +269,7 @@ files:
|
|
239
269
|
- lib/mini_profiler/gc_profiler.rb
|
240
270
|
- lib/mini_profiler/profiler.rb
|
241
271
|
- lib/mini_profiler/profiling_methods.rb
|
272
|
+
- lib/mini_profiler/snapshots_transporter.rb
|
242
273
|
- lib/mini_profiler/storage/abstract_store.rb
|
243
274
|
- lib/mini_profiler/storage/file_store.rb
|
244
275
|
- lib/mini_profiler/storage/memcache_store.rb
|
@@ -267,6 +298,7 @@ files:
|
|
267
298
|
- lib/patches/db/sequel.rb
|
268
299
|
- lib/patches/net_patches.rb
|
269
300
|
- lib/patches/sql_patches.rb
|
301
|
+
- lib/prepend_net_http_patch.rb
|
270
302
|
- lib/rack-mini-profiler.rb
|
271
303
|
- rack-mini-profiler.gemspec
|
272
304
|
homepage: https://miniprofiler.com
|
@@ -275,7 +307,7 @@ licenses:
|
|
275
307
|
metadata:
|
276
308
|
source_code_uri: https://github.com/MiniProfiler/rack-mini-profiler
|
277
309
|
changelog_uri: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md
|
278
|
-
post_install_message:
|
310
|
+
post_install_message:
|
279
311
|
rdoc_options: []
|
280
312
|
require_paths:
|
281
313
|
- lib
|
@@ -283,7 +315,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
283
315
|
requirements:
|
284
316
|
- - ">="
|
285
317
|
- !ruby/object:Gem::Version
|
286
|
-
version: 2.
|
318
|
+
version: 2.4.0
|
287
319
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
288
320
|
requirements:
|
289
321
|
- - ">="
|
@@ -291,7 +323,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
291
323
|
version: '0'
|
292
324
|
requirements: []
|
293
325
|
rubygems_version: 3.0.3
|
294
|
-
signing_key:
|
326
|
+
signing_key:
|
295
327
|
specification_version: 4
|
296
328
|
summary: Profiles loading speed for rack applications.
|
297
329
|
test_files: []
|