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.
@@ -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.1'
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'
@@ -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.1
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-03-17 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
@@ -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.3.0
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: []