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.
- checksums.yaml +4 -4
- data/Gemfile +5 -3
- data/Gemfile.lock +83 -64
- data/LICENSE.txt +1 -1
- data/LICENSES/MIT.txt +1 -1
- data/Rakefile +2 -2
- data/assets/index.css +2 -1
- data/assets/index.js +1 -1
- data/assets/index.xsl +19 -6
- data/bin/judges +3 -1
- data/eslint.config.js +1 -1
- data/features/echo.feature +1 -1
- data/features/gem_package.feature +1 -1
- data/features/import.feature +1 -1
- data/features/inspect.feature +1 -1
- data/features/join.feature +1 -1
- data/features/misc.feature +1 -1
- data/features/print.feature +1 -1
- data/features/pull.feature +1 -1
- data/features/push.feature +1 -1
- data/features/step_definitions/steps.rb +1 -1
- data/features/support/env.rb +1 -1
- data/features/test.feature +3 -3
- data/features/trim.feature +1 -1
- data/features/update.feature +1 -1
- data/features/version.feature +1 -1
- data/fixtures/guess/guess.rb +1 -1
- data/fixtures/guess/guess_made.yml +1 -1
- data/fixtures/guess/skipped.yml +1 -1
- data/fixtures/repeat/repeat.rb +1 -1
- data/fixtures/repeat/repeated.yml +1 -1
- data/fixtures/try/tried.yml +1 -1
- data/fixtures/try/try.rb +1 -1
- data/judges.gemspec +3 -2
- data/lib/judges/ascii_loog.rb +2 -2
- data/lib/judges/categories.rb +2 -2
- data/lib/judges/commands/download.rb +2 -2
- data/lib/judges/commands/eval.rb +2 -2
- data/lib/judges/commands/import.rb +2 -2
- data/lib/judges/commands/inspect.rb +2 -2
- data/lib/judges/commands/join.rb +2 -2
- data/lib/judges/commands/print.rb +3 -2
- data/lib/judges/commands/pull.rb +2 -2
- data/lib/judges/commands/push.rb +2 -2
- data/lib/judges/commands/test.rb +4 -4
- data/lib/judges/commands/trim.rb +2 -2
- data/lib/judges/commands/update.rb +9 -5
- data/lib/judges/commands/upload.rb +2 -2
- data/lib/judges/impex.rb +2 -2
- data/lib/judges/judge.rb +3 -2
- data/lib/judges/judges.rb +2 -2
- data/lib/judges/options.rb +2 -2
- data/lib/judges/statistics.rb +2 -2
- data/lib/judges/to_rel.rb +2 -2
- data/lib/judges.rb +3 -3
- data/package-lock.json +7 -7
- metadata +15 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5ac172cd19babb5a8fcbe6b7bc6311b70df9ff437dfb8bff633ffeeaf68218ce
|
|
4
|
+
data.tar.gz: 34776e965033db141dfabd895e41f554fffb6977caeb7aa6a39718c61d67d228
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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-
|
|
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', '~>
|
|
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', '
|
|
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.
|
|
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 (
|
|
44
|
+
bigdecimal (4.0.1)
|
|
44
45
|
builder (3.3.0)
|
|
45
|
-
concurrent-ruby (1.3.
|
|
46
|
+
concurrent-ruby (1.3.6)
|
|
46
47
|
crack (1.0.1)
|
|
47
48
|
bigdecimal
|
|
48
49
|
rexml
|
|
49
|
-
cucumber (10.
|
|
50
|
+
cucumber (10.2.0)
|
|
50
51
|
base64 (~> 0.2)
|
|
51
52
|
builder (~> 3.2)
|
|
52
|
-
cucumber-ci-environment (> 9, <
|
|
53
|
+
cucumber-ci-environment (> 9, < 12)
|
|
53
54
|
cucumber-core (> 15, < 17)
|
|
54
|
-
cucumber-cucumber-expressions (> 17, <
|
|
55
|
-
cucumber-html-formatter (>
|
|
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 (
|
|
62
|
-
cucumber-core (
|
|
63
|
-
cucumber-gherkin (>
|
|
64
|
-
cucumber-messages (>
|
|
65
|
-
cucumber-tag-expressions (>
|
|
66
|
-
cucumber-cucumber-expressions (
|
|
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 (
|
|
69
|
-
cucumber-messages (
|
|
70
|
-
cucumber-html-formatter (
|
|
71
|
-
cucumber-messages (>
|
|
72
|
-
cucumber-messages (
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
102
|
+
faraday-http-cache (2.6.1)
|
|
100
103
|
faraday (>= 0.8)
|
|
101
|
-
faraday-multipart (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.
|
|
108
|
+
faraday-retry (2.4.0)
|
|
106
109
|
faraday (~> 2.0)
|
|
107
|
-
ffi (1.17.
|
|
108
|
-
ffi (1.17.
|
|
109
|
-
ffi (1.17.
|
|
110
|
-
ffi (1.17.
|
|
111
|
-
ffi (1.17.
|
|
112
|
-
ffi (1.17.
|
|
113
|
-
ffi (1.17.
|
|
114
|
-
ffi (1.17.
|
|
115
|
-
ffi (1.17.
|
|
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.
|
|
120
|
-
json (2.
|
|
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.
|
|
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 (
|
|
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.
|
|
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.
|
|
145
|
+
net-http (0.9.1)
|
|
140
146
|
uri (>= 0.11.1)
|
|
141
|
-
nokogiri (1.
|
|
147
|
+
nokogiri (1.19.0-aarch64-linux-gnu)
|
|
142
148
|
racc (~> 1.4)
|
|
143
|
-
nokogiri (1.
|
|
149
|
+
nokogiri (1.19.0-aarch64-linux-musl)
|
|
144
150
|
racc (~> 1.4)
|
|
145
|
-
nokogiri (1.
|
|
151
|
+
nokogiri (1.19.0-arm-linux-gnu)
|
|
146
152
|
racc (~> 1.4)
|
|
147
|
-
nokogiri (1.
|
|
153
|
+
nokogiri (1.19.0-arm-linux-musl)
|
|
148
154
|
racc (~> 1.4)
|
|
149
|
-
nokogiri (1.
|
|
155
|
+
nokogiri (1.19.0-arm64-darwin)
|
|
150
156
|
racc (~> 1.4)
|
|
151
|
-
nokogiri (1.
|
|
157
|
+
nokogiri (1.19.0-x64-mingw-ucrt)
|
|
152
158
|
racc (~> 1.4)
|
|
153
|
-
nokogiri (1.
|
|
159
|
+
nokogiri (1.19.0-x86_64-darwin)
|
|
154
160
|
racc (~> 1.4)
|
|
155
|
-
nokogiri (1.
|
|
161
|
+
nokogiri (1.19.0-x86_64-linux-gnu)
|
|
156
162
|
racc (~> 1.4)
|
|
157
|
-
nokogiri (1.
|
|
163
|
+
nokogiri (1.19.0-x86_64-linux-musl)
|
|
158
164
|
racc (~> 1.4)
|
|
159
|
-
online (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.
|
|
173
|
+
parser (3.3.10.1)
|
|
166
174
|
ast (~> 2.4.1)
|
|
167
175
|
racc
|
|
168
|
-
prism (1.
|
|
169
|
-
|
|
170
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
209
|
+
rubocop-ast (1.49.0)
|
|
195
210
|
parser (>= 3.3.7.2)
|
|
196
|
-
prism (~> 1.
|
|
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.
|
|
222
|
-
timeout (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.
|
|
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.
|
|
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 (~>
|
|
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 (
|
|
292
|
+
yard (= 0.9.38)
|
|
274
293
|
|
|
275
294
|
BUNDLED WITH
|
|
276
295
|
2.6.8
|
data/LICENSE.txt
CHANGED
data/LICENSES/MIT.txt
CHANGED
data/Rakefile
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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)}",
|
|
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-
|
|
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
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-
|
|
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
|
-
<
|
|
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
|
-
<
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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-
|
|
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
data/features/echo.feature
CHANGED
data/features/import.feature
CHANGED
data/features/inspect.feature
CHANGED
data/features/join.feature
CHANGED
data/features/misc.feature
CHANGED
data/features/print.feature
CHANGED
data/features/pull.feature
CHANGED
data/features/push.feature
CHANGED
data/features/support/env.rb
CHANGED
data/features/test.feature
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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.
|
|
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.
|
|
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"
|
data/features/trim.feature
CHANGED
data/features/update.feature
CHANGED
data/features/version.feature
CHANGED
data/fixtures/guess/guess.rb
CHANGED
data/fixtures/guess/skipped.yml
CHANGED
data/fixtures/repeat/repeat.rb
CHANGED
data/fixtures/try/tried.yml
CHANGED
data/fixtures/try/try.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
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.
|
|
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'
|
data/lib/judges/ascii_loog.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
14
|
+
# Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
|
|
15
15
|
# License:: MIT
|
|
16
16
|
class Judges::AsciiLoog
|
|
17
17
|
# Unicode to ASCII symbol mapping
|
data/lib/judges/categories.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
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-
|
|
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-
|
|
18
|
+
# Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
|
|
19
19
|
# License:: MIT
|
|
20
20
|
class Judges::Download
|
|
21
21
|
# Initialize.
|
data/lib/judges/commands/eval.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
16
|
+
# Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
|
|
17
17
|
# License:: MIT
|
|
18
18
|
class Judges::Inspect
|
|
19
19
|
# Initialize.
|
data/lib/judges/commands/join.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
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-
|
|
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-
|
|
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')
|
data/lib/judges/commands/pull.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
19
|
+
# Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
|
|
20
20
|
# License:: MIT
|
|
21
21
|
class Judges::Pull
|
|
22
22
|
# Initialize.
|
data/lib/judges/commands/push.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
19
|
+
# Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
|
|
20
20
|
# License:: MIT
|
|
21
21
|
class Judges::Push
|
|
22
22
|
# Initialize.
|
data/lib/judges/commands/test.rb
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
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
|
)
|
data/lib/judges/commands/trim.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
26
|
+
# Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
|
|
27
27
|
# License:: MIT
|
|
28
28
|
class Judges::Judges
|
|
29
29
|
# Initialize.
|
data/lib/judges/options.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
20
|
+
# Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
|
|
21
21
|
# License:: MIT
|
|
22
22
|
class Judges::Options
|
|
23
23
|
# Initialize a new Options instance.
|
data/lib/judges/statistics.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: Copyright (c) 2024-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
8
|
+
# Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
|
|
9
9
|
# License:: MIT
|
|
10
10
|
module Judges
|
|
11
|
-
VERSION = '0.
|
|
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.
|
|
121
|
-
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.
|
|
122
|
-
"integrity": "sha512-
|
|
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.
|
|
427
|
-
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.
|
|
428
|
-
"integrity": "sha512-
|
|
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.
|
|
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.
|
|
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
|