rack-mini-profiler 2.0.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []