profile-viewer 0.0.1 → 0.0.3

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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/dist/136.4ad3301b8aacf759ea70.bundle.js +2 -0
  3. data/dist/136.4ad3301b8aacf759ea70.bundle.js.map +1 -0
  4. data/dist/171.621b9df5978342be5662.bundle.js +2 -0
  5. data/dist/171.621b9df5978342be5662.bundle.js.map +1 -0
  6. data/dist/18a5d1d99f1c65c33b71.png +0 -0
  7. data/dist/1ddbc3ce40af8c7a648b.svg +6 -0
  8. data/dist/280.b4210a48e650408000c3.bundle.js +2 -0
  9. data/dist/280.b4210a48e650408000c3.bundle.js.map +1 -0
  10. data/dist/556.2be67a37a0c61fdc2485.bundle.js +2 -0
  11. data/dist/{914.b9bc213d93173ce6b0cb.bundle.js.map → 556.2be67a37a0c61fdc2485.bundle.js.map} +1 -1
  12. data/dist/874.2a087b9b5a296a9c3fcd.bundle.js +2 -0
  13. data/dist/874.2a087b9b5a296a9c3fcd.bundle.js.map +1 -0
  14. data/dist/_headers +1 -2
  15. data/dist/contribute.json +31 -35
  16. data/dist/d6df0017c0241dfe86ff.svg +6 -0
  17. data/dist/docs/_sidebar.md +1 -0
  18. data/dist/docs/advanced-topics.md +1 -0
  19. data/dist/docs/async-posix-signal-control.md +102 -0
  20. data/dist/docs/guide-startup-shutdown.md +7 -7
  21. data/dist/docs/js/init.js +1 -1
  22. data/dist/index.html +1 -1
  23. data/dist/locales/README.md +1 -0
  24. data/dist/locales/be/app.ftl +42 -6
  25. data/dist/locales/de/app.ftl +109 -3
  26. data/dist/locales/el/app.ftl +110 -4
  27. data/dist/locales/en-CA/app.ftl +1125 -0
  28. data/dist/locales/en-GB/app.ftl +110 -4
  29. data/dist/locales/en-US/app.ftl +123 -6
  30. data/dist/locales/es-CL/app.ftl +110 -4
  31. data/dist/locales/fr/app.ftl +66 -4
  32. data/dist/locales/fur/app.ftl +1093 -0
  33. data/dist/locales/fy-NL/app.ftl +109 -3
  34. data/dist/locales/ia/app.ftl +109 -3
  35. data/dist/locales/it/app.ftl +109 -3
  36. data/dist/locales/kab/app.ftl +32 -2
  37. data/dist/locales/nl/app.ftl +110 -4
  38. data/dist/locales/pt-BR/app.ftl +111 -5
  39. data/dist/locales/ru/app.ftl +109 -3
  40. data/dist/locales/sv-SE/app.ftl +109 -3
  41. data/dist/locales/tr/app.ftl +907 -0
  42. data/dist/locales/uk/app.ftl +110 -4
  43. data/dist/locales/zh-CN/app.ftl +112 -6
  44. data/dist/locales/zh-TW/app.ftl +109 -3
  45. data/dist/main.ac7130d34ce3b872712a.bundle.js +201 -0
  46. data/dist/{main.8208fda2d35ddbe38d55.bundle.js.LICENSE.txt → main.ac7130d34ce3b872712a.bundle.js.LICENSE.txt} +1 -30
  47. data/dist/main.ac7130d34ce3b872712a.bundle.js.map +1 -0
  48. data/dist/photon/index.html +3 -2
  49. data/dist/photon/main.aafbcdad3fb08c7ae5b4.bundle.js +2 -0
  50. data/dist/photon/main.aafbcdad3fb08c7ae5b4.bundle.js.map +1 -0
  51. data/dist/robots.txt +4 -0
  52. data/dist/sw.js +1 -1
  53. data/dist/sw.js.map +1 -1
  54. data/dist/{workbox-27b29e6f.js → workbox-e3490c72.js} +2 -2
  55. data/dist/{workbox-27b29e6f.js.map → workbox-e3490c72.js.map} +1 -1
  56. data/dist/zee-worker.js +1 -1
  57. data/ruby-bin/profile-viewer +53 -16
  58. data/ruby-bin/profile-viewer-version.rb +3 -0
  59. metadata +60 -25
  60. data/dist/119.cc58ce313e67f80f50f3.bundle.js +0 -2
  61. data/dist/119.cc58ce313e67f80f50f3.bundle.js.map +0 -1
  62. data/dist/131.c21d348572deab4ece66.bundle.js +0 -2
  63. data/dist/131.c21d348572deab4ece66.bundle.js.map +0 -1
  64. data/dist/308.4d236ce7e6451807cb54.bundle.js +0 -2
  65. data/dist/308.4d236ce7e6451807cb54.bundle.js.map +0 -1
  66. data/dist/9.071a712ea648c8b30416.bundle.js +0 -2
  67. data/dist/9.071a712ea648c8b30416.bundle.js.map +0 -1
  68. data/dist/914.b9bc213d93173ce6b0cb.bundle.js +0 -2
  69. data/dist/b45b29da558efa211628.jpg +0 -0
  70. data/dist/before-load.js +0 -1
  71. data/dist/main.8208fda2d35ddbe38d55.bundle.js +0 -199
  72. data/dist/main.8208fda2d35ddbe38d55.bundle.js.map +0 -1
  73. data/dist/photon/main.8c8260452e7439ec6df9.bundle.js +0 -2
  74. data/dist/photon/main.8c8260452e7439ec6df9.bundle.js.map +0 -1
  75. /data/dist/{ad13da76642d8099fe70.module.wasm → 2f37d1addc2d2f5b699e.module.wasm} +0 -0
@@ -3,20 +3,11 @@
3
3
  require "webrick"
4
4
  require "json"
5
5
  require "cgi"
6
+ require "optparse"
7
+ require "socket"
6
8
 
7
9
  HTTP_ROOT = File.expand_path File.join(__dir__, "..", "dist")
8
10
 
9
- # This came from src/app-logic/constants.js
10
- # export const PROFILER_SERVER_ORIGIN = 'http://localhost:5252';
11
- PORT = 5252
12
-
13
- server = WEBrick::HTTPServer.new :Port => PORT,
14
- :DocumentRoot => HTTP_ROOT,
15
- :StartCallback => lambda {
16
- should_get = "http://localhost:#{PORT}/from-url/" + CGI.escape("http://localhost:#{PORT}/profile")
17
- system("open #{should_get}")
18
- }
19
-
20
11
  class Source < WEBrick::HTTPServlet::AbstractServlet
21
12
  def initialize server, valid_files
22
13
  super(server)
@@ -59,27 +50,73 @@ class Profile < WEBrick::HTTPServlet::AbstractServlet
59
50
  end
60
51
  end
61
52
 
53
+ o = OptionParser.new do |opts|
54
+ opts.banner = "Usage: profile-viewer profile.json"
55
+
56
+ opts.on("-v", "Show version") do |v|
57
+ require_relative "profile-viewer-version"
58
+ puts "Profile Viewer Version: #{ProfileViewer::VERSION}"
59
+ puts
60
+ end
61
+
62
+ opts.on_tail("-h", "--help", "Show this message") do
63
+ puts opts
64
+ exit
65
+ end
66
+ end
67
+ o.parse!
68
+
69
+ unless ARGV[0]
70
+ $stderr.puts o
71
+ exit(2)
72
+ end
73
+
74
+ unless File.exist?(ARGV[0])
75
+ $stderr.puts "no such file #{ARGV[0]}"
76
+ $stderr.puts
77
+ $stderr.puts o
78
+ exit(2)
79
+ end
80
+
81
+ port = 0
82
+ profile_paths = []
83
+ server = WEBrick::HTTPServer.new :Port => port,
84
+ :DocumentRoot => HTTP_ROOT,
85
+ :StartCallback => lambda {
86
+ port = server.config[:Port]
87
+ profile_paths.each do |path|
88
+ should_get = "http://localhost:#{port}/from-url/" + CGI.escape("http://localhost:#{port}#{path}")
89
+ system("open #{should_get}")
90
+ end
91
+ }
92
+
62
93
  trap 'INT' do server.shutdown end
63
94
 
64
95
  server.mount "/from-url", GetIndex
65
96
 
66
- profile = ARGV[0]
67
- if profile
68
- valid_files = Set.new
97
+ valid_files = Set.new
98
+
99
+ ARGV.each.with_index do |profile, index|
69
100
  full_path = File.expand_path profile
70
101
  parsed_file = JSON.parse File.read full_path
71
102
  parsed_file["threads"].each do |thread|
72
103
  thread["stringArray"].map! do |str|
73
104
  if str.start_with?("/") && File.exist?(str)
74
105
  valid_files << str
75
- "http://localhost:#{PORT}/source#{str}"
106
+ "http://localhost:#{port}/source#{str}"
76
107
  else
77
108
  str
78
109
  end
79
110
  end
80
111
  end
81
112
 
82
- server.mount "/profile", Profile, full_path, parsed_file
113
+ uri_path = "/profile#{index unless ARGV.size == 1}"
114
+ $stderr.puts "Mounting #{full_path} at #{uri_path}"
115
+ server.mount uri_path, Profile, full_path, parsed_file
116
+ profile_paths << uri_path
117
+ end
118
+
119
+ unless valid_files.empty?
83
120
  server.mount "/source", Source, valid_files
84
121
  end
85
122
 
@@ -0,0 +1,3 @@
1
+ module ProfileViewer
2
+ VERSION = "0.0.3"
3
+ end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: profile-viewer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
8
8
  autorequire:
9
9
  bindir: ruby-bin
10
10
  cert_chain: []
11
- date: 2023-08-11 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2024-12-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: webrick
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: optparse
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  description: This gem packages the Mozilla Profiler so that you can run it locally
14
42
  email: tenderlove@ruby-lang.org
15
43
  executables:
@@ -20,17 +48,20 @@ files:
20
48
  - dist/022efb839d22fa54a716.svg
21
49
  - dist/0c510afd6169a0a83f97.svg
22
50
  - dist/0d5cf282780cd1a5ec64.svg
23
- - dist/119.cc58ce313e67f80f50f3.bundle.js
24
- - dist/119.cc58ce313e67f80f50f3.bundle.js.map
25
51
  - dist/11c5dca6d97c9e10e5b7.svg
26
- - dist/131.c21d348572deab4ece66.bundle.js
27
- - dist/131.c21d348572deab4ece66.bundle.js.map
52
+ - dist/136.4ad3301b8aacf759ea70.bundle.js
53
+ - dist/136.4ad3301b8aacf759ea70.bundle.js.map
54
+ - dist/171.621b9df5978342be5662.bundle.js
55
+ - dist/171.621b9df5978342be5662.bundle.js.map
56
+ - dist/18a5d1d99f1c65c33b71.png
28
57
  - dist/18e7fdd45099134897d2.svg
58
+ - dist/1ddbc3ce40af8c7a648b.svg
59
+ - dist/280.b4210a48e650408000c3.bundle.js
60
+ - dist/280.b4210a48e650408000c3.bundle.js.map
29
61
  - dist/2d4b477bc424d35a0245.svg
30
62
  - dist/2e43ad991eb141fc017f.svg
31
63
  - dist/2ea5b50b7361e6de561c.svg
32
- - dist/308.4d236ce7e6451807cb54.bundle.js
33
- - dist/308.4d236ce7e6451807cb54.bundle.js.map
64
+ - dist/2f37d1addc2d2f5b699e.module.wasm
34
65
  - dist/31fe933f3a12be1aa7f3.svg
35
66
  - dist/390aa266f451c1005f61.svg
36
67
  - dist/3c3fda7c08bcc9544c64.svg
@@ -41,6 +72,8 @@ files:
41
72
  - dist/4d26f0e38c22eedde178.jpg
42
73
  - dist/4ecb077d8715f89c0f87.svg
43
74
  - dist/524e896f487119a0b832.svg
75
+ - dist/556.2be67a37a0c61fdc2485.bundle.js
76
+ - dist/556.2be67a37a0c61fdc2485.bundle.js.map
44
77
  - dist/58c5415e952fb6dddd6b.png
45
78
  - dist/6bd0589a27236471fdab.svg
46
79
  - dist/6c6b49af3a86dfdd44e6.svg
@@ -56,14 +89,12 @@ files:
56
89
  - dist/7e3ac9afb25cfe809520.svg
57
90
  - dist/81762b0b1aacd3686a6b.svg
58
91
  - dist/86e81402ef76d28ff55f.svg
92
+ - dist/874.2a087b9b5a296a9c3fcd.bundle.js
93
+ - dist/874.2a087b9b5a296a9c3fcd.bundle.js.map
59
94
  - dist/8aae7b979b04407f71a4.svg
60
95
  - dist/8b8b909e42722172d494.svg
61
96
  - dist/8dab2a6ba757bcc6e9a5.svg
62
- - dist/9.071a712ea648c8b30416.bundle.js
63
- - dist/9.071a712ea648c8b30416.bundle.js.map
64
97
  - dist/9103e94f1d34c15d44be.svg
65
- - dist/914.b9bc213d93173ce6b0cb.bundle.js
66
- - dist/914.b9bc213d93173ce6b0cb.bundle.js.map
67
98
  - dist/9a7bd6ec36312a2baa7e.svg
68
99
  - dist/9d858d1a3ab57f8ee2e1.svg
69
100
  - dist/9eb1fab2684d1e1f0e26.svg
@@ -72,21 +103,20 @@ files:
72
103
  - dist/a3196e840709b18a3119.svg
73
104
  - dist/aa867391c311267af5a9.svg
74
105
  - dist/acb8393f3fb9c59b15c9.svg
75
- - dist/ad13da76642d8099fe70.module.wasm
76
- - dist/b45b29da558efa211628.jpg
77
106
  - dist/b5698a02eef37ce29146.svg
78
107
  - dist/b805360fcc91834556c9.svg
79
- - dist/before-load.js
80
108
  - dist/c3432220f657733ed05f.svg
81
109
  - dist/ca2af827049e9039ef9c.svg
82
110
  - dist/contribute.json
83
111
  - dist/d09537c705fb0878eb63.svg
112
+ - dist/d6df0017c0241dfe86ff.svg
84
113
  - dist/d9c199b3e3e469cc5713.svg
85
114
  - dist/da1f21c60c7217745dd8.svg
86
115
  - dist/docs/README.md
87
116
  - dist/docs/_navbar.md
88
117
  - dist/docs/_sidebar.md
89
118
  - dist/docs/advanced-topics.md
119
+ - dist/docs/async-posix-signal-control.md
90
120
  - dist/docs/bunny-2.md
91
121
  - dist/docs/bunny.md
92
122
  - dist/docs/case-studies.md
@@ -216,10 +246,12 @@ files:
216
246
  - dist/locales/be/app.ftl
217
247
  - dist/locales/de/app.ftl
218
248
  - dist/locales/el/app.ftl
249
+ - dist/locales/en-CA/app.ftl
219
250
  - dist/locales/en-GB/app.ftl
220
251
  - dist/locales/en-US/app.ftl
221
252
  - dist/locales/es-CL/app.ftl
222
253
  - dist/locales/fr/app.ftl
254
+ - dist/locales/fur/app.ftl
223
255
  - dist/locales/fy-NL/app.ftl
224
256
  - dist/locales/ia/app.ftl
225
257
  - dist/locales/it/app.ftl
@@ -228,12 +260,13 @@ files:
228
260
  - dist/locales/pt-BR/app.ftl
229
261
  - dist/locales/ru/app.ftl
230
262
  - dist/locales/sv-SE/app.ftl
263
+ - dist/locales/tr/app.ftl
231
264
  - dist/locales/uk/app.ftl
232
265
  - dist/locales/zh-CN/app.ftl
233
266
  - dist/locales/zh-TW/app.ftl
234
- - dist/main.8208fda2d35ddbe38d55.bundle.js
235
- - dist/main.8208fda2d35ddbe38d55.bundle.js.LICENSE.txt
236
- - dist/main.8208fda2d35ddbe38d55.bundle.js.map
267
+ - dist/main.ac7130d34ce3b872712a.bundle.js
268
+ - dist/main.ac7130d34ce3b872712a.bundle.js.LICENSE.txt
269
+ - dist/main.ac7130d34ce3b872712a.bundle.js.map
237
270
  - dist/photon/31fe933f3a12be1aa7f3.svg
238
271
  - dist/photon/49da6a2153f62ef73d17.svg
239
272
  - dist/photon/6bd0589a27236471fdab.svg
@@ -245,16 +278,18 @@ files:
245
278
  - dist/photon/aa867391c311267af5a9.svg
246
279
  - dist/photon/f0599659345cf76717cd.svg
247
280
  - dist/photon/index.html
248
- - dist/photon/main.8c8260452e7439ec6df9.bundle.js
249
- - dist/photon/main.8c8260452e7439ec6df9.bundle.js.map
281
+ - dist/photon/main.aafbcdad3fb08c7ae5b4.bundle.js
282
+ - dist/photon/main.aafbcdad3fb08c7ae5b4.bundle.js.map
283
+ - dist/robots.txt
250
284
  - dist/service-worker-compat.js
251
285
  - dist/sw.js
252
286
  - dist/sw.js.map
253
- - dist/workbox-27b29e6f.js
254
- - dist/workbox-27b29e6f.js.map
287
+ - dist/workbox-e3490c72.js
288
+ - dist/workbox-e3490c72.js.map
255
289
  - dist/zee-worker.js
256
290
  - ruby-bin/profile-viewer
257
- homepage: https://rubygems.org/gems/example
291
+ - ruby-bin/profile-viewer-version.rb
292
+ homepage: https://github.com/tenderlove/profiler/tree/ruby
258
293
  licenses:
259
294
  - MPL-2.0
260
295
  metadata:
@@ -274,7 +309,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
274
309
  - !ruby/object:Gem::Version
275
310
  version: '0'
276
311
  requirements: []
277
- rubygems_version: 3.5.0.dev
312
+ rubygems_version: 3.5.11
278
313
  signing_key:
279
314
  specification_version: 4
280
315
  summary: Ruby Gem that packages the Mozilla Profiler