rack-mini-profiler 3.1.0 → 3.1.1
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 +8 -1
- data/lib/html/includes.js +2 -5
- data/lib/html/includes.tmpl +1 -1
- data/lib/html/vendor.js +1 -1
- data/lib/mini_profiler/asset_version.rb +1 -1
- data/lib/mini_profiler/storage/memory_store.rb +2 -2
- data/lib/mini_profiler/version.rb +1 -1
- data/lib/mini_profiler.rb +10 -5
- data/lib/mini_profiler_rails/railtie.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bced31d81d2044a03b4c98ccd43359253866115a7cdec13897155df6df2cf58b
|
4
|
+
data.tar.gz: ef8fe2fa2f9ab20c6d8d2fe9138e693ce9891ad40d4af37d7e4cad86b1edc233
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8d03dadee75d6e1bccff74b9b8359fdc6b4c574652874b0f6c70e873c8ce7c131a25114051f5001bc906add142c4660786b7d8efff2242702b9b4327fdce6b6
|
7
|
+
data.tar.gz: 5399488dbf48cb7c270a8095f3555965015eccf2abb0aeeeb2190dec604a4748e7ad43ea5ca3d295d8238e4369fbdc95a6322661e6b5274dc665e2ad6ed9298e
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,18 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 3.1.1 - 2023-08-01
|
4
|
+
|
5
|
+
- [FIX] Include configured base path in speedscope iframe URL [#587](https://github.com/MiniProfiler/rack-mini-profiler/pull/587)
|
6
|
+
- [FIX] Race condition starting CacheCleanupThread [#586](https://github.com/MiniProfiler/rack-mini-profiler/pull/586)
|
7
|
+
- [FEATURE] Add controller name to description [#567](https://github.com/MiniProfiler/rack-mini-profiler/pull/567)
|
8
|
+
- [FIX] 'more' link w/HTTPS [#574](https://github.com/MiniProfiler/rack-mini-profiler/pull/574)
|
9
|
+
|
3
10
|
## 3.1.0 - 2023-04-11
|
4
11
|
|
5
12
|
- [FEATURE] The query parameter that RMP uses (by default, pp) is now configurable [#553](https://github.com/MiniProfiler/rack-mini-profiler/pull/553)
|
6
13
|
- [FEATURE] You can now opt-out of the Net::HTTP patch by using RACK_MINI_PROFILER_PATCH_NET_HTTP="false"
|
7
14
|
- [FIX] Error responses now include header values from the app, and stackprof not installed message now has correct content [#547](https://github.com/MiniProfiler/rack-mini-profiler/pull/547)
|
8
|
-
- [FIX] RMP pages now have more valid HTML, with title elements [#
|
15
|
+
- [FIX] RMP pages now have more valid HTML, with title elements [#552](https://github.com/MiniProfiler/rack-mini-profiler/pull/552)
|
9
16
|
- [BREAKING CHANGE] Ruby 2.4 and Ruby 2.5 are no longer supported.
|
10
17
|
- [FIX] Now works with apps that don't otherwise require erb [#531](https://github.com/MiniProfiler/rack-mini-profiler/pull/531)
|
11
18
|
- [DOCS] Added Heroku Redis instructions
|
data/lib/html/includes.js
CHANGED
@@ -1240,11 +1240,8 @@ var _MiniProfiler = (function() {
|
|
1240
1240
|
return options.path + "flamegraph?id=" + id;
|
1241
1241
|
},
|
1242
1242
|
moreUrl: function moreUrl(requestName) {
|
1243
|
-
var
|
1244
|
-
|
1245
|
-
requestParts[0] == "GET" ? requestParts[1] : window.location.href;
|
1246
|
-
var linkSuffix = linkSrc.indexOf("?") > 0 ? "&pp=help" : "?pp=help";
|
1247
|
-
return linkSrc + linkSuffix;
|
1243
|
+
var linkSuffix = requestName.indexOf("?") > 0 ? "&pp=help" : "?pp=help";
|
1244
|
+
return requestName + linkSuffix;
|
1248
1245
|
},
|
1249
1246
|
getClientTimings: function getClientTimings(clientTimings) {
|
1250
1247
|
var list = [];
|
data/lib/html/includes.tmpl
CHANGED
@@ -141,7 +141,7 @@
|
|
141
141
|
|
142
142
|
<script id="linksTemplate" type="text/x-dot-tmpl">
|
143
143
|
<a href="{{= MiniProfiler.shareUrl(it.page.id) }}" class="profiler-share-profiler-results" target="_blank">share</a>
|
144
|
-
<a href="{{= MiniProfiler.moreUrl(it.
|
144
|
+
<a href="{{= MiniProfiler.moreUrl(it.page.name) }}" class="profiler-more-actions">more</a>
|
145
145
|
{{? it.page.has_flamegraph}}
|
146
146
|
<a href="{{= MiniProfiler.flamegraphUrl(it.page.id) }}" class="profiler-show-flamegraph" target="_blank">flamegraph</a>
|
147
147
|
{{?}}
|
data/lib/html/vendor.js
CHANGED
@@ -11,7 +11,7 @@ var out=' <div class="profiler-result"> <div class="profiler-button ';if(it.has_
|
|
11
11
|
}
|
12
12
|
MiniProfiler.templates["linksTemplate"] = function anonymous(it
|
13
13
|
) {
|
14
|
-
var out=' <a href="'+( MiniProfiler.shareUrl(it.page.id) )+'" class="profiler-share-profiler-results" target="_blank">share</a> <a href="'+( MiniProfiler.moreUrl(it.
|
14
|
+
var out=' <a href="'+( MiniProfiler.shareUrl(it.page.id) )+'" class="profiler-share-profiler-results" target="_blank">share</a> <a href="'+( MiniProfiler.moreUrl(it.page.name) )+'" class="profiler-more-actions">more</a> ';if(it.page.has_flamegraph){out+=' <a href="'+( MiniProfiler.flamegraphUrl(it.page.id) )+'" class="profiler-show-flamegraph" target="_blank">flamegraph</a> ';}out+=' ';if(it.custom_link){out+=' <a href="'+( it.custom_link )+'" class="profiler-custom-link" target="_blank">'+( it.custom_link_name )+'</a> ';}out+=' ';if(it.page.has_trivial_timings){out+=' <a class="profiler-toggle-trivial" data-show-on-load="'+( it.page.has_all_trivial_timings )+'" title="toggles any rows with < '+( it.page.trivial_duration_threshold_milliseconds )+' ms"> show trivial </a> ';}return out;
|
15
15
|
}
|
16
16
|
MiniProfiler.templates["timingTemplate"] = function anonymous(it
|
17
17
|
) {
|
@@ -10,11 +10,11 @@ module Rack
|
|
10
10
|
class CacheCleanupThread < Thread
|
11
11
|
|
12
12
|
def initialize(interval, cycle, store)
|
13
|
-
super
|
14
13
|
@store = store
|
15
14
|
@interval = interval
|
16
15
|
@cycle = cycle
|
17
16
|
@cycle_count = 1
|
17
|
+
super
|
18
18
|
end
|
19
19
|
|
20
20
|
def should_cleanup?
|
@@ -78,7 +78,7 @@ module Rack
|
|
78
78
|
cleanup_cycle = args.fetch(:cleanup_cycle) { CLEANUP_CYCLE }
|
79
79
|
t = CacheCleanupThread.new(cleanup_interval, cleanup_cycle, self) do
|
80
80
|
until Thread.current[:should_exit] do
|
81
|
-
|
81
|
+
Thread.current.sleepy_run
|
82
82
|
end
|
83
83
|
end
|
84
84
|
at_exit { t[:should_exit] = true }
|
data/lib/mini_profiler.rb
CHANGED
@@ -462,7 +462,7 @@ module Rack
|
|
462
462
|
|
463
463
|
if flamegraph && query_string =~ /#{@config.profile_parameter}=flamegraph/
|
464
464
|
body.close if body.respond_to? :close
|
465
|
-
return client_settings.handle_cookie(self.flamegraph(flamegraph, path))
|
465
|
+
return client_settings.handle_cookie(self.flamegraph(flamegraph, path, env))
|
466
466
|
elsif flamegraph # async-flamegraph
|
467
467
|
page_struct[:has_flamegraph] = true
|
468
468
|
page_struct[:flamegraph] = flamegraph
|
@@ -705,8 +705,9 @@ module Rack
|
|
705
705
|
[200, headers, [html]]
|
706
706
|
end
|
707
707
|
|
708
|
-
def flamegraph(graph, path)
|
708
|
+
def flamegraph(graph, path, env)
|
709
709
|
headers = { 'Content-Type' => 'text/html' }
|
710
|
+
iframe_src = "#{public_base_path(env)}speedscope/index.html"
|
710
711
|
html = <<~HTML
|
711
712
|
<!DOCTYPE html>
|
712
713
|
<html>
|
@@ -726,7 +727,7 @@ module Rack
|
|
726
727
|
var iframe = document.createElement('IFRAME');
|
727
728
|
iframe.setAttribute('id', 'speedscope-iframe');
|
728
729
|
document.body.appendChild(iframe);
|
729
|
-
var iframeUrl = '#{
|
730
|
+
var iframeUrl = '#{iframe_src}#profileURL=' + objUrl + '&title=' + 'Flamegraph for #{CGI.escape(path)}';
|
730
731
|
iframe.setAttribute('src', iframeUrl);
|
731
732
|
</script>
|
732
733
|
</body>
|
@@ -755,7 +756,7 @@ module Rack
|
|
755
756
|
# * you have disabled auto append behaviour throught :auto_inject => false flag
|
756
757
|
# * you do not want script to be automatically appended for the current page. You can also call cancel_auto_inject
|
757
758
|
def get_profile_script(env)
|
758
|
-
path =
|
759
|
+
path = public_base_path(env)
|
759
760
|
version = MiniProfiler::ASSET_VERSION
|
760
761
|
if @config.assets_url
|
761
762
|
url = @config.assets_url.call('rack-mini-profiler.js', version, env)
|
@@ -887,7 +888,7 @@ module Rack
|
|
887
888
|
return [404, {}, ["No flamegraph available for #{ERB::Util.html_escape(id)}"]]
|
888
889
|
end
|
889
890
|
|
890
|
-
self.flamegraph(page_struct[:flamegraph], page_struct[:request_path])
|
891
|
+
self.flamegraph(page_struct[:flamegraph], page_struct[:request_path], env)
|
891
892
|
end
|
892
893
|
|
893
894
|
def rails_route_from_path(path, method)
|
@@ -945,5 +946,9 @@ module Rack
|
|
945
946
|
self.current = nil
|
946
947
|
results
|
947
948
|
end
|
949
|
+
|
950
|
+
def public_base_path(env)
|
951
|
+
"#{env['RACK_MINI_PROFILER_ORIGINAL_SCRIPT_NAME']}#{@config.base_url_path}"
|
952
|
+
end
|
948
953
|
end
|
949
954
|
end
|
@@ -75,7 +75,8 @@ module Rack::MiniProfilerRails
|
|
75
75
|
next if !should_measure?
|
76
76
|
|
77
77
|
current = Rack::MiniProfiler.current
|
78
|
-
|
78
|
+
controller_name = payload[:controller].sub(/Controller\z/, '').downcase
|
79
|
+
description = "Executing: #{controller_name}##{payload[:action]}"
|
79
80
|
Thread.current[get_key(payload)] = current.current_timer
|
80
81
|
Rack::MiniProfiler.current.current_timer = current.current_timer.add_child(description)
|
81
82
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-mini-profiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-08-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|