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.
@@ -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
  )
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rack
4
4
  class MiniProfiler
5
- VERSION = '2.0.2'
5
+ VERSION = '2.2.0'
6
6
  end
7
7
  end
@@ -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
@@ -2,15 +2,25 @@
2
2
 
3
3
  if (defined?(Net) && defined?(Net::HTTP))
4
4
 
5
- Net::HTTP.class_eval do
6
- def request_with_mini_profiler(*args, &block)
7
- request = args[0]
8
- Rack::MiniProfiler.step("Net::HTTP #{request.method} #{request.path}") do
9
- request_without_mini_profiler(*args, &block)
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
- alias request_without_mini_profiler request
13
- alias request request_with_mini_profiler
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
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rack
4
+ MINI_PROFILER_PREPEND_NET_HTTP_PATCH = true
5
+ end
@@ -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'
@@ -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.3.0'
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.2
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-05-25 00:00:00.000000000 Z
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.3.0
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: []