judges 0.58.1 → 0.60.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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -3
  3. data/Gemfile.lock +83 -64
  4. data/LICENSE.txt +1 -1
  5. data/LICENSES/MIT.txt +1 -1
  6. data/Rakefile +2 -2
  7. data/assets/index.css +2 -1
  8. data/assets/index.js +1 -1
  9. data/assets/index.xsl +19 -6
  10. data/bin/judges +3 -1
  11. data/eslint.config.js +1 -1
  12. data/features/echo.feature +1 -1
  13. data/features/gem_package.feature +1 -1
  14. data/features/import.feature +1 -1
  15. data/features/inspect.feature +1 -1
  16. data/features/join.feature +1 -1
  17. data/features/misc.feature +1 -1
  18. data/features/print.feature +1 -1
  19. data/features/pull.feature +1 -1
  20. data/features/push.feature +1 -1
  21. data/features/step_definitions/steps.rb +1 -1
  22. data/features/support/env.rb +1 -1
  23. data/features/test.feature +3 -3
  24. data/features/trim.feature +1 -1
  25. data/features/update.feature +1 -1
  26. data/features/version.feature +1 -1
  27. data/fixtures/guess/guess.rb +1 -1
  28. data/fixtures/guess/guess_made.yml +1 -1
  29. data/fixtures/guess/skipped.yml +1 -1
  30. data/fixtures/repeat/repeat.rb +1 -1
  31. data/fixtures/repeat/repeated.yml +1 -1
  32. data/fixtures/try/tried.yml +1 -1
  33. data/fixtures/try/try.rb +1 -1
  34. data/judges.gemspec +3 -2
  35. data/lib/judges/ascii_loog.rb +2 -2
  36. data/lib/judges/categories.rb +2 -2
  37. data/lib/judges/commands/download.rb +2 -2
  38. data/lib/judges/commands/eval.rb +2 -2
  39. data/lib/judges/commands/import.rb +2 -2
  40. data/lib/judges/commands/inspect.rb +2 -2
  41. data/lib/judges/commands/join.rb +2 -2
  42. data/lib/judges/commands/print.rb +3 -2
  43. data/lib/judges/commands/pull.rb +2 -2
  44. data/lib/judges/commands/push.rb +2 -2
  45. data/lib/judges/commands/test.rb +4 -4
  46. data/lib/judges/commands/trim.rb +2 -2
  47. data/lib/judges/commands/update.rb +9 -5
  48. data/lib/judges/commands/upload.rb +2 -2
  49. data/lib/judges/impex.rb +2 -2
  50. data/lib/judges/judge.rb +3 -2
  51. data/lib/judges/judges.rb +2 -2
  52. data/lib/judges/options.rb +2 -2
  53. data/lib/judges/statistics.rb +2 -2
  54. data/lib/judges/to_rel.rb +2 -2
  55. data/lib/judges.rb +3 -3
  56. data/package-lock.json +7 -7
  57. metadata +15 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 541c53ebfa3be7b249cd349cb3c222bfe931aeb816a6ba2a5abc65a27f436b3a
4
- data.tar.gz: d5dc5d8d7037ec73e89101ce50da713418e96cf266d7503553721d60478818e0
3
+ metadata.gz: 5ac172cd19babb5a8fcbe6b7bc6311b70df9ff437dfb8bff633ffeeaf68218ce
4
+ data.tar.gz: 34776e965033db141dfabd895e41f554fffb6977caeb7aa6a39718c61d67d228
5
5
  SHA512:
6
- metadata.gz: cbc21454cd7aa5207cb8a42e0efa48041ba55cd5e6092ce5deff46b4e1df3e3aafda90d9d7ca221ff732dd54e9f9b99080024a5164902b883f73afdefa930ac8
7
- data.tar.gz: 8cb7034eb559cea6b26d9e6be0970ed53545b0d2584ff1b5169acb0873d966bc582ff54baf36517526bac5aa21383b5e561eb4f19c1fe40e08a27a08ba90839d
6
+ metadata.gz: 6965159d5e0cf14900bb8a7ac9b546e809ba199b52c6581edd3819a1a0d477b8e1536ece942971e16aadf951987badcae88e16a93291965037f9693d42c32358
7
+ data.tar.gz: 07313a43d4badf58218d153ba18264090ef4ad57bf3d195fce77a48009f891453b817eccbbc504b5be29fefa55266ad8c5ebb1ec8ab17a8a88a4836e9d229571
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  source 'https://rubygems.org'
@@ -9,7 +9,8 @@ gemspec
9
9
  gem 'base64', '~>0.3'
10
10
  gem 'cucumber', '~>10.0', require: false
11
11
  gem 'diff-lcs', '1.6.2', require: false # GPL
12
- gem 'minitest', '~>5.25', require: false
12
+ gem 'minitest', '~>6.0', require: false
13
+ gem 'minitest-mock', '~>5.27', require: false
13
14
  gem 'minitest-reporters', '~>1.7', require: false
14
15
  gem 'minitest-retry', '~>0.2', require: false
15
16
  gem 'online', '~>0.0', require: false
@@ -17,6 +18,7 @@ gem 'os', '~>1.1', require: false
17
18
  gem 'qbash', '~>0.4', require: false
18
19
  gem 'rake', '~>13.2', require: false
19
20
  gem 'random-port', '~>0.7', require: false
21
+ gem 'rdoc', '7.2.0', require: false # GPL
20
22
  gem 'rubocop', '~>1.74', require: false
21
23
  gem 'rubocop-minitest', '~>0.38', require: false
22
24
  gem 'rubocop-performance', '~>1.25', require: false
@@ -25,4 +27,4 @@ gem 'simplecov', '~>0.22', require: false
25
27
  gem 'simplecov-cobertura', '~>3.0', require: false
26
28
  gem 'w3c_validators', '~>1.3', require: false
27
29
  gem 'webmock', '~>3.25', require: false
28
- gem 'yard', '~>0.9', require: false
30
+ gem 'yard', '0.9.38', require: false # GPL
data/Gemfile.lock CHANGED
@@ -6,6 +6,7 @@ PATH
6
6
  baza.rb (~> 0.10)
7
7
  concurrent-ruby (~> 1.2)
8
8
  elapsed (~> 0.2)
9
+ ellipsized (~> 0.3)
9
10
  factbase (~> 0.16)
10
11
  gli (~> 2.21)
11
12
  iri (~> 0.11)
@@ -28,7 +29,7 @@ GEM
28
29
  ast (2.4.3)
29
30
  backtrace (0.4.1)
30
31
  base64 (0.3.0)
31
- baza.rb (0.11.1)
32
+ baza.rb (0.14.3)
32
33
  backtrace (~> 0.4)
33
34
  elapsed (~> 0.2)
34
35
  faraday (~> 2.13)
@@ -40,48 +41,50 @@ GEM
40
41
  retries (~> 0.0)
41
42
  tago (~> 0.2)
42
43
  typhoeus (~> 1.4)
43
- bigdecimal (3.3.1)
44
+ bigdecimal (4.0.1)
44
45
  builder (3.3.0)
45
- concurrent-ruby (1.3.5)
46
+ concurrent-ruby (1.3.6)
46
47
  crack (1.0.1)
47
48
  bigdecimal
48
49
  rexml
49
- cucumber (10.1.1)
50
+ cucumber (10.2.0)
50
51
  base64 (~> 0.2)
51
52
  builder (~> 3.2)
52
- cucumber-ci-environment (> 9, < 11)
53
+ cucumber-ci-environment (> 9, < 12)
53
54
  cucumber-core (> 15, < 17)
54
- cucumber-cucumber-expressions (> 17, < 19)
55
- cucumber-html-formatter (> 20.3, < 22)
55
+ cucumber-cucumber-expressions (> 17, < 20)
56
+ cucumber-html-formatter (> 21, < 23)
56
57
  diff-lcs (~> 1.5)
57
58
  logger (~> 1.6)
58
59
  mini_mime (~> 1.1)
59
60
  multi_test (~> 1.1)
60
61
  sys-uname (~> 1.3)
61
- cucumber-ci-environment (10.0.1)
62
- cucumber-core (15.3.0)
63
- cucumber-gherkin (> 27, < 35)
64
- cucumber-messages (> 26, < 30)
65
- cucumber-tag-expressions (> 5, < 9)
66
- cucumber-cucumber-expressions (18.0.1)
62
+ cucumber-ci-environment (11.0.0)
63
+ cucumber-core (16.2.0)
64
+ cucumber-gherkin (> 36, < 40)
65
+ cucumber-messages (> 31, < 33)
66
+ cucumber-tag-expressions (> 6, < 9)
67
+ cucumber-cucumber-expressions (19.0.0)
67
68
  bigdecimal
68
- cucumber-gherkin (34.0.0)
69
- cucumber-messages (> 25, < 29)
70
- cucumber-html-formatter (21.15.1)
71
- cucumber-messages (> 19, < 28)
72
- cucumber-messages (27.2.0)
69
+ cucumber-gherkin (38.0.0)
70
+ cucumber-messages (>= 31, < 33)
71
+ cucumber-html-formatter (22.3.0)
72
+ cucumber-messages (> 23, < 33)
73
+ cucumber-messages (32.0.1)
73
74
  cucumber-tag-expressions (8.1.0)
75
+ date (3.5.1)
74
76
  decoor (0.1.0)
75
77
  diff-lcs (1.6.2)
76
78
  docile (1.4.1)
77
- elapsed (0.2.0)
79
+ elapsed (0.3.1)
78
80
  loog (~> 0.6)
79
81
  tago (~> 0.1)
80
82
  ellipsized (0.3.0)
83
+ erb (6.0.1)
81
84
  ethon (0.18.0)
82
85
  ffi (>= 1.15.0)
83
86
  logger
84
- factbase (0.17.0)
87
+ factbase (0.19.6)
85
88
  backtrace (~> 0.4)
86
89
  decoor (~> 0.1)
87
90
  ellipsized (~> 0.3)
@@ -92,82 +95,90 @@ GEM
92
95
  others (~> 0.1)
93
96
  tago (~> 0.1)
94
97
  yaml (~> 0.3)
95
- faraday (2.14.0)
98
+ faraday (2.14.1)
96
99
  faraday-net_http (>= 2.0, < 3.5)
97
100
  json
98
101
  logger
99
- faraday-http-cache (2.5.1)
102
+ faraday-http-cache (2.6.1)
100
103
  faraday (>= 0.8)
101
- faraday-multipart (1.1.1)
104
+ faraday-multipart (1.2.0)
102
105
  multipart-post (~> 2.0)
103
106
  faraday-net_http (3.4.2)
104
107
  net-http (~> 0.5)
105
- faraday-retry (2.3.2)
108
+ faraday-retry (2.4.0)
106
109
  faraday (~> 2.0)
107
- ffi (1.17.2-aarch64-linux-gnu)
108
- ffi (1.17.2-aarch64-linux-musl)
109
- ffi (1.17.2-arm-linux-gnu)
110
- ffi (1.17.2-arm-linux-musl)
111
- ffi (1.17.2-arm64-darwin)
112
- ffi (1.17.2-x64-mingw-ucrt)
113
- ffi (1.17.2-x86_64-darwin)
114
- ffi (1.17.2-x86_64-linux-gnu)
115
- ffi (1.17.2-x86_64-linux-musl)
110
+ ffi (1.17.3-aarch64-linux-gnu)
111
+ ffi (1.17.3-aarch64-linux-musl)
112
+ ffi (1.17.3-arm-linux-gnu)
113
+ ffi (1.17.3-arm-linux-musl)
114
+ ffi (1.17.3-arm64-darwin)
115
+ ffi (1.17.3-x64-mingw-ucrt)
116
+ ffi (1.17.3-x86_64-darwin)
117
+ ffi (1.17.3-x86_64-linux-gnu)
118
+ ffi (1.17.3-x86_64-linux-musl)
116
119
  gli (2.22.2)
117
120
  ostruct
118
121
  hashdiff (1.2.1)
119
- iri (0.11.3)
120
- json (2.16.0)
122
+ iri (0.11.8)
123
+ json (2.18.1)
121
124
  language_server-protocol (3.17.0.5)
122
125
  lint_roller (1.1.0)
123
126
  logger (1.7.0)
124
- loog (0.6.1)
127
+ loog (0.8.0)
128
+ ellipsized
125
129
  logger (~> 1.0)
126
130
  memoist3 (1.0.0)
127
131
  mini_mime (1.1.5)
128
- minitest (5.26.2)
132
+ minitest (6.0.1)
133
+ prism (~> 1.5)
134
+ minitest-mock (5.27.0)
129
135
  minitest-reporters (1.7.1)
130
136
  ansi
131
137
  builder
132
138
  minitest (>= 5.0)
133
139
  ruby-progressbar
134
- minitest-retry (0.2.5)
140
+ minitest-retry (0.3.1)
135
141
  minitest (>= 5.0)
136
142
  moments (0.3.0)
137
143
  multi_test (1.1.0)
138
144
  multipart-post (2.4.1)
139
- net-http (0.8.0)
145
+ net-http (0.9.1)
140
146
  uri (>= 0.11.1)
141
- nokogiri (1.18.10-aarch64-linux-gnu)
147
+ nokogiri (1.19.0-aarch64-linux-gnu)
142
148
  racc (~> 1.4)
143
- nokogiri (1.18.10-aarch64-linux-musl)
149
+ nokogiri (1.19.0-aarch64-linux-musl)
144
150
  racc (~> 1.4)
145
- nokogiri (1.18.10-arm-linux-gnu)
151
+ nokogiri (1.19.0-arm-linux-gnu)
146
152
  racc (~> 1.4)
147
- nokogiri (1.18.10-arm-linux-musl)
153
+ nokogiri (1.19.0-arm-linux-musl)
148
154
  racc (~> 1.4)
149
- nokogiri (1.18.10-arm64-darwin)
155
+ nokogiri (1.19.0-arm64-darwin)
150
156
  racc (~> 1.4)
151
- nokogiri (1.18.10-x64-mingw-ucrt)
157
+ nokogiri (1.19.0-x64-mingw-ucrt)
152
158
  racc (~> 1.4)
153
- nokogiri (1.18.10-x86_64-darwin)
159
+ nokogiri (1.19.0-x86_64-darwin)
154
160
  racc (~> 1.4)
155
- nokogiri (1.18.10-x86_64-linux-gnu)
161
+ nokogiri (1.19.0-x86_64-linux-gnu)
156
162
  racc (~> 1.4)
157
- nokogiri (1.18.10-x86_64-linux-musl)
163
+ nokogiri (1.19.0-x86_64-linux-musl)
158
164
  racc (~> 1.4)
159
- online (0.2.0)
165
+ online (0.3.0)
166
+ openssl (>= 3)
160
167
  timeout (~> 0.4)
168
+ openssl (4.0.0)
161
169
  os (1.1.4)
162
170
  ostruct (0.6.3)
163
171
  others (0.1.1)
164
172
  parallel (1.27.0)
165
- parser (3.3.10.0)
173
+ parser (3.3.10.1)
166
174
  ast (~> 2.4.1)
167
175
  racc
168
- prism (1.6.0)
169
- public_suffix (7.0.0)
170
- qbash (0.4.8)
176
+ prism (1.9.0)
177
+ psych (5.3.1)
178
+ date
179
+ stringio
180
+ public_suffix (7.0.2)
181
+ qbash (0.7.2)
171
182
  backtrace (> 0)
172
183
  elapsed (> 0)
173
184
  loog (> 0)
@@ -175,12 +186,16 @@ GEM
175
186
  racc (1.8.1)
176
187
  rainbow (3.1.1)
177
188
  rake (13.3.1)
178
- random-port (0.7.6)
189
+ random-port (0.8.2)
179
190
  tago (~> 0.0)
191
+ rdoc (7.2.0)
192
+ erb
193
+ psych (>= 4.0.0)
194
+ tsort
180
195
  regexp_parser (2.11.3)
181
196
  retries (0.0.5)
182
197
  rexml (3.4.4)
183
- rubocop (1.81.7)
198
+ rubocop (1.84.2)
184
199
  json (~> 2.3)
185
200
  language_server-protocol (~> 3.17.0.2)
186
201
  lint_roller (~> 1.1.0)
@@ -188,12 +203,12 @@ GEM
188
203
  parser (>= 3.3.0.2)
189
204
  rainbow (>= 2.2.2, < 4.0)
190
205
  regexp_parser (>= 2.9.3, < 3.0)
191
- rubocop-ast (>= 1.47.1, < 2.0)
206
+ rubocop-ast (>= 1.49.0, < 2.0)
192
207
  ruby-progressbar (~> 1.7)
193
208
  unicode-display_width (>= 2.4.0, < 4.0)
194
- rubocop-ast (1.48.0)
209
+ rubocop-ast (1.49.0)
195
210
  parser (>= 3.3.7.2)
196
- prism (~> 1.4)
211
+ prism (~> 1.7)
197
212
  rubocop-minitest (0.38.2)
198
213
  lint_roller (~> 1.1)
199
214
  rubocop (>= 1.75.0, < 2.0)
@@ -215,17 +230,19 @@ GEM
215
230
  simplecov (~> 0.19)
216
231
  simplecov-html (0.13.2)
217
232
  simplecov_json_formatter (0.1.4)
233
+ stringio (3.2.0)
218
234
  sys-uname (1.4.1)
219
235
  ffi (~> 1.1)
220
236
  memoist3 (~> 1.0.0)
221
- tago (0.4.0)
222
- timeout (0.5.0)
237
+ tago (0.7.0)
238
+ timeout (0.6.0)
223
239
  total (0.4.2)
240
+ tsort (0.2.0)
224
241
  typhoeus (1.4.1)
225
242
  ethon (>= 0.9.0)
226
243
  unicode-display_width (3.2.0)
227
244
  unicode-emoji (~> 4.1)
228
- unicode-emoji (4.1.0)
245
+ unicode-emoji (4.2.0)
229
246
  uri (1.1.1)
230
247
  w3c_validators (1.3.7)
231
248
  json (>= 1.8)
@@ -236,7 +253,7 @@ GEM
236
253
  crack (>= 0.3.2)
237
254
  hashdiff (>= 0.4.0, < 2.0.0)
238
255
  yaml (0.4.0)
239
- yard (0.9.37)
256
+ yard (0.9.38)
240
257
 
241
258
  PLATFORMS
242
259
  aarch64-linux-gnu
@@ -254,7 +271,8 @@ DEPENDENCIES
254
271
  cucumber (~> 10.0)
255
272
  diff-lcs (= 1.6.2)
256
273
  judges!
257
- minitest (~> 5.25)
274
+ minitest (~> 6.0)
275
+ minitest-mock (~> 5.27)
258
276
  minitest-reporters (~> 1.7)
259
277
  minitest-retry (~> 0.2)
260
278
  online (~> 0.0)
@@ -262,6 +280,7 @@ DEPENDENCIES
262
280
  qbash (~> 0.4)
263
281
  rake (~> 13.2)
264
282
  random-port (~> 0.7)
283
+ rdoc (= 7.2.0)
265
284
  rubocop (~> 1.74)
266
285
  rubocop-minitest (~> 0.38)
267
286
  rubocop-performance (~> 1.25)
@@ -270,7 +289,7 @@ DEPENDENCIES
270
289
  simplecov-cobertura (~> 3.0)
271
290
  w3c_validators (~> 1.3)
272
291
  webmock (~> 3.25)
273
- yard (~> 0.9)
292
+ yard (= 0.9.38)
274
293
 
275
294
  BUNDLED WITH
276
295
  2.6.8
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2024-2025 Yegor Bugayenko
3
+ Copyright (c) 2024-2026 Yegor Bugayenko
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the 'Software'), to deal
data/LICENSES/MIT.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2024-2025 Yegor Bugayenko
3
+ Copyright (c) 2024-2026 Yegor Bugayenko
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the 'Software'), to deal
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'os'
@@ -37,7 +37,7 @@ task :picks do
37
37
  next if OS.windows?
38
38
  %w[test lib].each do |d|
39
39
  Dir["#{d}/**/*.rb"].each do |f|
40
- qbash("bundle exec ruby #{Shellwords.escape(f)}", log: $stdout, env: { 'PICKS' => 'yes' })
40
+ qbash("bundle exec ruby #{Shellwords.escape(f)}", stdout: $stdout, env: { 'PICKS' => 'yes' })
41
41
  end
42
42
  end
43
43
  end
data/assets/index.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
3
3
  SPDX-License-Identifier: MIT
4
4
  */
5
5
 
@@ -15,6 +15,7 @@ td { word-wrap: break-word; }
15
15
  .I { color: #61304B; }
16
16
  .F { color: #5C0029; }
17
17
  .BR { color: #B6C649; }
18
+ .highlighted{ background-color: #FFFF5F; }
18
19
  .hidden { color: #C1C1C1; }
19
20
  .w50 { width: 50%; }
20
21
  .empty { color: lightgray; font-family: sans-serif; }
data/assets/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ * SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
 
data/assets/index.xsl CHANGED
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!--
3
- * SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ * SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  * SPDX-License-Identifier: MIT
5
5
  -->
6
6
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
@@ -9,6 +9,7 @@
9
9
  <xsl:param name="date"/>
10
10
  <xsl:param name="version"/>
11
11
  <xsl:param name="columns"/>
12
+ <xsl:param name="highlighted"/>
12
13
  <xsl:param name="hidden"/>
13
14
  <xsl:param name="js_hash"/>
14
15
  <xsl:param name="css_hash"/>
@@ -212,10 +213,17 @@
212
213
  <xsl:for-each select="$f/*">
213
214
  <xsl:text> </xsl:text>
214
215
  <xsl:variable name="visible" select="string-length(substring-before(concat(' ,', $hidden, ','), concat(',', name(), ','))) = 0"/>
216
+ <xsl:variable name="is-highlighted" select="contains(concat(',', $highlighted, ','),
217
+ concat(',', name(), ','))"/>
215
218
  <xsl:if test="string-length(substring-before(concat(' ,', $columns, ','), concat(',', name(), ','))) = 0">
216
219
  <xsl:choose>
217
220
  <xsl:when test="$visible">
218
- <xsl:value-of select="name()"/>
221
+ <span>
222
+ <xsl:if test="$is-highlighted">
223
+ <xsl:attribute name="class">highlighted</xsl:attribute>
224
+ </xsl:if>
225
+ <xsl:value-of select="name()"/>
226
+ </span>
219
227
  </xsl:when>
220
228
  <xsl:otherwise>
221
229
  <span class="hidden" title="{.}">
@@ -224,10 +232,15 @@
224
232
  </xsl:otherwise>
225
233
  </xsl:choose>
226
234
  <xsl:if test="$visible">
227
- <xsl:text>:</xsl:text>
228
- <xsl:call-template name="value">
229
- <xsl:with-param name="v" select="."/>
230
- </xsl:call-template>
235
+ <span>
236
+ <xsl:if test="$is-highlighted">
237
+ <xsl:attribute name="class">highlighted</xsl:attribute>
238
+ </xsl:if>
239
+ <xsl:text>:</xsl:text>
240
+ <xsl:call-template name="value">
241
+ <xsl:with-param name="v" select="."/>
242
+ </xsl:call-template>
243
+ </span>
231
244
  </xsl:if>
232
245
  </xsl:if>
233
246
  </xsl:for-each>
data/bin/judges CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  $stdout.sync = true
@@ -190,6 +190,8 @@ class JudgesGLI extend GLI::App
190
190
  c.flag([:query], default_value: '(always)')
191
191
  c.desc 'Comma-separated list of columns to display in HTML output (no spaces)'
192
192
  c.flag([:columns], default_value: 'when,what')
193
+ c.desc 'Comma-separated list of columns to highlight while rendering (no spaces)'
194
+ c.flag([:highlighted], default_value: 'stale,tombstone')
193
195
  c.desc 'Comma-separated list of columns to hide from rendering (no spaces)'
194
196
  c.flag([:hidden], default_value: '_id,_time,_version,_job')
195
197
  c.desc 'Force printing even if the target file exists and is older than the factbase'
data/eslint.config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ * SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
 
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Echo
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Gem Package
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Import
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Inspect
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Join
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Misc
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Print
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Pull
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Push
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'tmpdir'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'simplecov'
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Test
@@ -16,9 +16,9 @@ Feature: Test
16
16
  And Exit code is zero
17
17
 
18
18
  Scenario: Factbase version can be set
19
- When I run bin/judges with "--factbase 0.17.0 --verbose test --judge guess ./fixtures"
19
+ When I run bin/judges with "--factbase 0.19.6 --verbose test --judge guess ./fixtures"
20
20
  Then Exit code is zero
21
- And Stdout contains "Factbase version to be used: '0.17.0'"
21
+ And Stdout contains "Factbase version to be used: '0.19.6'"
22
22
 
23
23
  Scenario: Simple test of no judges
24
24
  Given I run bin/judges with "test --judge absent_for_sure ./fixtures"
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Trim
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Update
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  Feature: Version
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  $loog.info("Trying to guess a number (judge=#{$judge})...")
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
  ---
4
4
  input: []
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
  ---
4
4
  skip: true
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # nothing to do here
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
  ---
4
4
  repeat: 10
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
  ---
4
4
  input:
data/fixtures/try/try.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  $fb.query("(and (exists number) (lt time #{Time.now.utc.iso8601}))").each do |f|
data/judges.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'English'
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
10
10
  s.required_ruby_version = '>=3.2'
11
11
  s.name = 'judges'
12
- s.version = '0.58.1'
12
+ s.version = '0.60.0'
13
13
  s.license = 'MIT'
14
14
  s.summary = 'Command-Line Tool for a Factbase'
15
15
  s.description =
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
29
29
  s.add_dependency 'baza.rb', '~>0.10'
30
30
  s.add_dependency 'concurrent-ruby', '~>1.2'
31
31
  s.add_dependency 'elapsed', '~>0.2'
32
+ s.add_dependency 'ellipsized', '~>0.3'
32
33
  s.add_dependency 'factbase', '~>0.16'
33
34
  s.add_dependency 'gli', '~>2.21'
34
35
  s.add_dependency 'iri', '~>0.11'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../judges'
@@ -11,7 +11,7 @@ require_relative '../judges'
11
11
  # equivalents when the --ascii option is enabled.
12
12
  #
13
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
14
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
14
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
15
15
  # License:: MIT
16
16
  class Judges::AsciiLoog
17
17
  # Unicode to ASCII symbol mapping
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../judges'
@@ -12,7 +12,7 @@ require_relative '../judges'
12
12
  # tests should be executed based on their associated categories.
13
13
  #
14
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
15
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
15
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
16
16
  # License:: MIT
17
17
  class Judges::Categories
18
18
  # Initialize a new Categories instance.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'typhoeus'
@@ -15,7 +15,7 @@ require_relative '../../judges'
15
15
  # are not supposed to instantiate it yourself.
16
16
  #
17
17
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
18
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
18
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
19
19
  # License:: MIT
20
20
  class Judges::Download
21
21
  # Initialize.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'elapsed'
@@ -13,7 +13,7 @@ require_relative '../../judges/impex'
13
13
  # are not supposed to instantiate it yourself.
14
14
  #
15
15
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
16
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
16
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
17
17
  # License:: MIT
18
18
  class Judges::Eval
19
19
  # Initialize.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'elapsed'
@@ -15,7 +15,7 @@ require_relative '../../judges/to_rel'
15
15
  # are not supposed to instantiate it yourself.
16
16
  #
17
17
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
18
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
18
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
19
19
  # License:: MIT
20
20
  class Judges::Import
21
21
  # Initialize.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'factbase/fact_as_yaml'
@@ -13,7 +13,7 @@ require_relative '../../judges/impex'
13
13
  # are not supposed to instantiate it yourself.
14
14
  #
15
15
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
16
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
16
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
17
17
  # License:: MIT
18
18
  class Judges::Inspect
19
19
  # Initialize.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'elapsed'
@@ -13,7 +13,7 @@ require_relative '../../judges/impex'
13
13
  # are not supposed to instantiate it yourself.
14
14
  #
15
15
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
16
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
16
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
17
17
  # License:: MIT
18
18
  class Judges::Join
19
19
  # Initialize.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'base64'
@@ -20,7 +20,7 @@ require_relative '../../judges/impex'
20
20
  # are not supposed to instantiate it yourself.
21
21
  #
22
22
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
23
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
23
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
24
24
  # License:: MIT
25
25
  class Judges::Print
26
26
  # Initialize.
@@ -88,6 +88,7 @@ class Judges::Print
88
88
  'date' => Time.now.utc.iso8601,
89
89
  'columns' => opts['columns'] || 'when,what,who',
90
90
  'hidden' => opts['hidden'] || '_id,_version,_time,_job',
91
+ 'highlighted' => opts['highlighted'] || 'stale,tombstone',
91
92
  'version' => Judges::VERSION,
92
93
  'css_hash' => sha384(opts, 'index.css'),
93
94
  'js_hash' => sha384(opts, 'index.js')
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'typhoeus'
@@ -16,7 +16,7 @@ require_relative '../../judges/impex'
16
16
  # are not supposed to instantiate it yourself.
17
17
  #
18
18
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
19
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
19
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
20
20
  # License:: MIT
21
21
  class Judges::Pull
22
22
  # Initialize.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'typhoeus'
@@ -16,7 +16,7 @@ require_relative '../../judges/impex'
16
16
  # are not supposed to instantiate it yourself.
17
17
  #
18
18
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
19
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
19
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
20
20
  # License:: MIT
21
21
  class Judges::Push
22
22
  # Initialize.
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
-
6
5
  require 'nokogiri'
7
6
  require 'factbase'
8
7
  require 'backtrace'
9
8
  require 'factbase/to_xml'
10
9
  require 'elapsed'
10
+ require 'ellipsized'
11
11
  require 'timeout'
12
12
  require_relative '../../judges'
13
13
  require_relative '../../judges/to_rel'
@@ -21,7 +21,7 @@ require_relative '../../judges/categories'
21
21
  # are not supposed to instantiate it yourself.
22
22
  #
23
23
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
24
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
24
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
25
25
  # License:: MIT
26
26
  class Judges::Test
27
27
  # Initialize.
@@ -106,7 +106,7 @@ class Judges::Test
106
106
  format(fmt, 'Script', 'Seconds', 'Result'),
107
107
  format(fmt, '---', '---', '---'),
108
108
  times.sort_by { |_, v| v }.reverse.map do |script, sec|
109
- format(fmt, script, format('%.3f', sec), errors.include?(script) ? 'ERROR' : 'OK')
109
+ format(fmt, script.ellipsized(50), format('%.3f', sec), errors.include?(script) ? 'ERROR' : 'OK')
110
110
  end.join("\n ")
111
111
  ].join("\n ")
112
112
  )
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'time'
@@ -14,7 +14,7 @@ require_relative '../../judges/impex'
14
14
  # are not supposed to instantiate it yourself.
15
15
  #
16
16
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
17
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
17
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
18
18
  # License:: MIT
19
19
  class Judges::Trim
20
20
  # Initialize.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'backtrace'
@@ -25,7 +25,7 @@ require_relative '../../judges/to_rel'
25
25
  # are not supposed to instantiate it yourself.
26
26
  #
27
27
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
28
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
28
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
29
29
  # License:: MIT
30
30
  class Judges::Update
31
31
  # Initialize.
@@ -213,9 +213,13 @@ class Judges::Update
213
213
  throw :"👍 The '#{judge.name}' judge #{impact} out of #{fb.size} facts"
214
214
  end
215
215
  rescue StandardError, SyntaxError => e
216
- @loog.warn(Backtrace.new(e))
217
- errors << e.message
218
- result = 'ERROR'
216
+ if e.is_a?(RuntimeError) && e.message == 'skip'
217
+ result = 'SKIPPED'
218
+ else
219
+ @loog.warn(Backtrace.new(e))
220
+ errors << e.message
221
+ result = 'ERROR'
222
+ end
219
223
  ensure
220
224
  statistics&.record(judge.name, Time.now - start_time, result, impact) if start_time
221
225
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'typhoeus'
@@ -15,7 +15,7 @@ require_relative '../../judges'
15
15
  # are not supposed to instantiate it yourself.
16
16
  #
17
17
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
18
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
18
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
19
19
  # License:: MIT
20
20
  class Judges::Upload
21
21
  # Initialize.
data/lib/judges/impex.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'factbase'
@@ -16,7 +16,7 @@ require_relative '../judges/to_rel'
16
16
  # proper logging and error handling.
17
17
  #
18
18
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
19
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
19
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
20
20
  # License:: MIT
21
21
  class Judges::Impex
22
22
  # Initialize a new Impex instance.
data/lib/judges/judge.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'elapsed'
@@ -12,7 +12,7 @@ require_relative '../judges/to_rel'
12
12
 
13
13
  # A single judge.
14
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
15
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
15
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
16
16
  # License:: MIT
17
17
  class Judges::Judge
18
18
  attr_reader :dir
@@ -81,6 +81,7 @@ class Judges::Judge
81
81
  # rubocop:disable Lint/RescueException
82
82
  rescue Exception => e
83
83
  # rubocop:enable Lint/RescueException
84
+ raise e if e.is_a?(RuntimeError) && e.message == 'skip'
84
85
  @loog.error(Backtrace.new(e))
85
86
  raise e if e.is_a?(StandardError)
86
87
  raise e if e.is_a?(Timeout::ExitException)
data/lib/judges/judges.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'time'
@@ -23,7 +23,7 @@ require_relative 'judge'
23
23
  # name of the +.rb+ script inside the directory.
24
24
  #
25
25
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
26
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
26
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
27
27
  # License:: MIT
28
28
  class Judges::Judges
29
29
  # Initialize.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'others'
@@ -17,7 +17,7 @@ require_relative '../judges'
17
17
  # allowing options to be accessed as method calls.
18
18
  #
19
19
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
20
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
20
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
21
21
  # License:: MIT
22
22
  class Judges::Options
23
23
  # Initialize a new Options instance.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../judges'
@@ -11,7 +11,7 @@ require_relative '../judges'
11
11
  # across multiple cycles, providing insights into performance and results.
12
12
  #
13
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
14
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
14
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
15
15
  # License:: MIT
16
16
  class Judges::Statistics
17
17
  # Initialize empty statistics.
data/lib/judges/to_rel.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'pathname'
7
7
 
8
8
  # Adding method +to_rel+ to all Ruby objects.
9
9
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
10
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
10
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
11
11
  # License:: MIT
12
12
  class Object
13
13
  # Generates a relative name of a file (to the current dir).
data/lib/judges.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Judges.
7
7
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
8
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
8
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
9
9
  # License:: MIT
10
10
  module Judges
11
- VERSION = '0.58.1' unless const_defined?(:VERSION)
11
+ VERSION = '0.60.0' unless const_defined?(:VERSION)
12
12
  end
data/package-lock.json CHANGED
@@ -117,9 +117,9 @@
117
117
  }
118
118
  },
119
119
  "node_modules/@eslint/js": {
120
- "version": "9.39.1",
121
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz",
122
- "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==",
120
+ "version": "9.39.2",
121
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz",
122
+ "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==",
123
123
  "dev": true,
124
124
  "license": "MIT",
125
125
  "engines": {
@@ -423,9 +423,9 @@
423
423
  }
424
424
  },
425
425
  "node_modules/eslint": {
426
- "version": "9.39.1",
427
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz",
428
- "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==",
426
+ "version": "9.39.2",
427
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz",
428
+ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
429
429
  "dev": true,
430
430
  "license": "MIT",
431
431
  "peer": true,
@@ -436,7 +436,7 @@
436
436
  "@eslint/config-helpers": "^0.4.2",
437
437
  "@eslint/core": "^0.17.0",
438
438
  "@eslint/eslintrc": "^3.3.1",
439
- "@eslint/js": "9.39.1",
439
+ "@eslint/js": "9.39.2",
440
440
  "@eslint/plugin-kit": "^0.4.1",
441
441
  "@humanfs/node": "^0.16.6",
442
442
  "@humanwhocodes/module-importer": "^1.0.1",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: judges
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.58.1
4
+ version: 0.60.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -65,6 +65,20 @@ dependencies:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0.2'
68
+ - !ruby/object:Gem::Dependency
69
+ name: ellipsized
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.3'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.3'
68
82
  - !ruby/object:Gem::Dependency
69
83
  name: factbase
70
84
  requirement: !ruby/object:Gem::Requirement