judges 0.38.1 → 0.39.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 353058d96072ebe04e9e5f71c51be5905e113e6af9406eb8ad1c05eb61b72921
4
- data.tar.gz: 04df0fe98d3933ca745928b3cf4802145393b2ea734635d0dff2ba1c96e96213
3
+ metadata.gz: 648e8ad65e3255282ff6e2dab31c8afc6d7a74b1a84eea5eea21b129a85338b7
4
+ data.tar.gz: 8be0599e94e563bfcdc63512f33bd820e6a427e1ad1797fc64d2436ace685ebf
5
5
  SHA512:
6
- metadata.gz: ec6197e9fb2109bce6adf440aa3b770b0e8bc09117c8002f7e1c931f7759d6127161bba8d91e2cd8602ca98fb94309e8aec1a6f3fb7621898193510b3e1cafb6
7
- data.tar.gz: 391300ee4ddfe82e9f967cea2b43f05db42439540ebf3a45a784f286df8eeb8adcb25548c614567320ac7fa674d3878dd3c565967e7b4a6d1d66f2d9645e2dbb
6
+ metadata.gz: 01d29179f30b35bfb378daed6006731fddc12a3ca85ea4b4e0472e9f2ab1338f135744ac2b5a5836ea794cb9a08879c73c5b7319aaea6cc3d87c93fbb0670433
7
+ data.tar.gz: 5215b033dd301adc1d533c2dee63ef9443c720ba0e67dc8a9ac91450a5d8944174ed68acd6921eed6cf7d282c1c2090055dfde0d2e012522ccd14439ae116999
@@ -0,0 +1,21 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+ ---
4
+ # yamllint disable rule:line-length
5
+ name: eslint
6
+ 'on':
7
+ push:
8
+ branches:
9
+ - master
10
+ pull_request:
11
+ branches:
12
+ - master
13
+ jobs:
14
+ eslint:
15
+ timeout-minutes: 15
16
+ runs-on: ubuntu-24.04
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - run: npm install -g eslint@9.17.0
20
+ - run: npm install @eslint/js
21
+ - run: eslint
data/.rultor.yml CHANGED
@@ -23,6 +23,15 @@ release:
23
23
  gem build judges.gemspec
24
24
  chmod 0600 ../rubygems.yml
25
25
  gem push *.gem --config-file ../rubygems.yml
26
+
27
+ cp assets/index.css /tmp/index.css
28
+ cp assets/index.js /tmp/index.js
29
+ git checkout gh-pages
30
+ mkdir -p assets
31
+ cp /tmp/index.css assets/index.css
32
+ cp /tmp/index.js assets/index.js
33
+ git add assets/
34
+ git commit -a --allow-empty -m 'New JS and CSS'
26
35
  merge:
27
36
  script: |-
28
37
  bundle exec rake
data/Gemfile CHANGED
@@ -6,16 +6,18 @@
6
6
  source 'https://rubygems.org'
7
7
  gemspec
8
8
 
9
+ gem 'base64', '>0'
9
10
  gem 'cucumber', '~>9.2', require: false
10
11
  gem 'minitest', '~>5.25', require: false
11
12
  gem 'minitest-reporters', '~>1.7', require: false
12
13
  gem 'minitest-retry', '~>0.2', require: false
13
14
  gem 'net-ping', '~>2.0', require: false
15
+ gem 'os', '>0', require: false
14
16
  gem 'qbash', '>0', require: false
15
17
  gem 'rake', '~>13.2', require: false
16
18
  gem 'random-port', '~>0.0', require: false
17
- gem 'rspec-rails', '~>7.1', require: false
18
- gem 'rubocop', '1.74.0', require: false
19
+ gem 'rdoc', '>0', require: false
20
+ gem 'rubocop', '~>1.74', require: false
19
21
  gem 'rubocop-minitest', '>0', require: false
20
22
  gem 'rubocop-performance', '>0', require: false
21
23
  gem 'rubocop-rake', '>0', require: false
data/Gemfile.lock CHANGED
@@ -6,7 +6,7 @@ PATH
6
6
  baza.rb (~> 0)
7
7
  concurrent-ruby (~> 1.2)
8
8
  elapsed (~> 0)
9
- factbase (>= 0.9.1)
9
+ factbase (~> 0.9)
10
10
  gli (~> 2.21)
11
11
  iri (~> 0)
12
12
  loog (~> 0)
@@ -22,42 +22,13 @@ PATH
22
22
  GEM
23
23
  remote: https://rubygems.org/
24
24
  specs:
25
- actionpack (8.0.2)
26
- actionview (= 8.0.2)
27
- activesupport (= 8.0.2)
28
- nokogiri (>= 1.8.5)
29
- rack (>= 2.2.4)
30
- rack-session (>= 1.0.1)
31
- rack-test (>= 0.6.3)
32
- rails-dom-testing (~> 2.2)
33
- rails-html-sanitizer (~> 1.6)
34
- useragent (~> 0.16)
35
- actionview (8.0.2)
36
- activesupport (= 8.0.2)
37
- builder (~> 3.1)
38
- erubi (~> 1.11)
39
- rails-dom-testing (~> 2.2)
40
- rails-html-sanitizer (~> 1.6)
41
- activesupport (8.0.2)
42
- base64
43
- benchmark (>= 0.3)
44
- bigdecimal
45
- concurrent-ruby (~> 1.0, >= 1.3.1)
46
- connection_pool (>= 2.2.5)
47
- drb
48
- i18n (>= 1.6, < 2)
49
- logger (>= 1.4.2)
50
- minitest (>= 5.1)
51
- securerandom (>= 0.3)
52
- tzinfo (~> 2.0, >= 2.0.5)
53
- uri (>= 0.13.1)
54
25
  addressable (2.8.7)
55
26
  public_suffix (>= 2.0.2, < 7.0)
56
27
  ansi (1.5.0)
57
28
  ast (2.4.3)
58
29
  backtrace (0.4.0)
59
30
  base64 (0.2.0)
60
- baza.rb (0.0.9)
31
+ baza.rb (0.1.0)
61
32
  backtrace (> 0)
62
33
  elapsed (> 0)
63
34
  faraday (> 0)
@@ -69,15 +40,12 @@ GEM
69
40
  retries (~> 0)
70
41
  tago (~> 0)
71
42
  typhoeus (~> 1.3)
72
- benchmark (0.4.0)
73
43
  bigdecimal (3.1.9)
74
44
  builder (3.3.0)
75
45
  concurrent-ruby (1.3.5)
76
- connection_pool (2.5.0)
77
46
  crack (1.0.0)
78
47
  bigdecimal
79
48
  rexml
80
- crass (1.0.6)
81
49
  cucumber (9.2.1)
82
50
  builder (~> 3.2)
83
51
  cucumber-ci-environment (> 9, < 11)
@@ -105,23 +73,22 @@ GEM
105
73
  cucumber-tag-expressions (6.1.2)
106
74
  date (3.4.1)
107
75
  decoor (0.0.1)
108
- diff-lcs (1.6.0)
76
+ diff-lcs (1.6.1)
109
77
  docile (1.4.1)
110
- drb (2.2.1)
111
78
  elapsed (0.0.1)
112
79
  loog (> 0)
113
80
  tago (> 0)
114
- erubi (1.13.1)
115
81
  ethon (0.16.0)
116
82
  ffi (>= 1.15.0)
117
- factbase (0.9.5)
118
- backtrace (>= 0.4.0)
119
- decoor (>= 0.0.1)
83
+ factbase (0.9.10)
84
+ backtrace (~> 0.4)
85
+ decoor (~> 0.0)
120
86
  json (~> 2.7)
121
- loog (>= 0.6.0)
87
+ logger (~> 1.0)
88
+ loog (~> 0.6)
122
89
  nokogiri (~> 1.10)
123
- others (>= 0.0.3)
124
- tago (>= 0.0.2)
90
+ others (~> 0.0)
91
+ tago (~> 0.0)
125
92
  yaml (~> 0.3)
126
93
  faraday (2.12.2)
127
94
  faraday-net_http (>= 2.0, < 3.5)
@@ -133,7 +100,7 @@ GEM
133
100
  multipart-post (~> 2.0)
134
101
  faraday-net_http (3.4.0)
135
102
  net-http (>= 0.5.0)
136
- faraday-retry (2.2.1)
103
+ faraday-retry (2.3.0)
137
104
  faraday (~> 2.0)
138
105
  ffi (1.17.1-aarch64-linux-gnu)
139
106
  ffi (1.17.1-arm-linux-gnu)
@@ -145,21 +112,11 @@ GEM
145
112
  gli (2.22.2)
146
113
  ostruct
147
114
  hashdiff (1.1.2)
148
- i18n (1.14.7)
149
- concurrent-ruby (~> 1.0)
150
- io-console (0.8.0)
151
- irb (1.15.1)
152
- pp (>= 0.6.0)
153
- rdoc (>= 4.0.0)
154
- reline (>= 0.4.2)
155
115
  iri (0.10.0)
156
116
  json (2.10.2)
157
117
  language_server-protocol (3.17.0.4)
158
118
  lint_roller (1.1.0)
159
- logger (1.6.6)
160
- loofah (2.24.0)
161
- crass (~> 1.0.2)
162
- nokogiri (>= 1.12.0)
119
+ logger (1.7.0)
163
120
  loog (0.6.0)
164
121
  mini_mime (1.1.5)
165
122
  mini_portile2 (2.8.8)
@@ -177,30 +134,29 @@ GEM
177
134
  net-http (0.6.0)
178
135
  uri
179
136
  net-ping (2.0.8)
180
- nokogiri (1.18.5)
137
+ nokogiri (1.18.7)
181
138
  mini_portile2 (~> 2.8.2)
182
139
  racc (~> 1.4)
183
- nokogiri (1.18.5-aarch64-linux-gnu)
140
+ nokogiri (1.18.7-aarch64-linux-gnu)
184
141
  racc (~> 1.4)
185
- nokogiri (1.18.5-arm-linux-gnu)
142
+ nokogiri (1.18.7-arm-linux-gnu)
186
143
  racc (~> 1.4)
187
- nokogiri (1.18.5-arm64-darwin)
144
+ nokogiri (1.18.7-arm64-darwin)
188
145
  racc (~> 1.4)
189
- nokogiri (1.18.5-x64-mingw-ucrt)
146
+ nokogiri (1.18.7-x64-mingw-ucrt)
190
147
  racc (~> 1.4)
191
- nokogiri (1.18.5-x86_64-darwin)
148
+ nokogiri (1.18.7-x86_64-darwin)
192
149
  racc (~> 1.4)
193
- nokogiri (1.18.5-x86_64-linux-gnu)
150
+ nokogiri (1.18.7-x86_64-linux-gnu)
194
151
  racc (~> 1.4)
152
+ os (1.1.4)
195
153
  ostruct (0.6.1)
196
154
  others (0.0.3)
197
155
  parallel (1.26.3)
198
- parser (3.3.7.1)
156
+ parser (3.3.7.4)
199
157
  ast (~> 2.4.1)
200
158
  racc
201
- pp (0.6.2)
202
- prettyprint
203
- prettyprint (0.2.0)
159
+ prism (1.4.0)
204
160
  psych (5.2.3)
205
161
  date
206
162
  stringio
@@ -211,58 +167,16 @@ GEM
211
167
  loog (> 0)
212
168
  tago (> 0)
213
169
  racc (1.8.1)
214
- rack (3.1.12)
215
- rack-session (2.1.0)
216
- base64 (>= 0.1.0)
217
- rack (>= 3.0.0)
218
- rack-test (2.2.0)
219
- rack (>= 1.3)
220
- rackup (2.2.1)
221
- rack (>= 3)
222
- rails-dom-testing (2.2.0)
223
- activesupport (>= 5.0.0)
224
- minitest
225
- nokogiri (>= 1.6)
226
- rails-html-sanitizer (1.6.2)
227
- loofah (~> 2.21)
228
- nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
229
- railties (8.0.2)
230
- actionpack (= 8.0.2)
231
- activesupport (= 8.0.2)
232
- irb (~> 1.13)
233
- rackup (>= 1.0.0)
234
- rake (>= 12.2)
235
- thor (~> 1.0, >= 1.2.2)
236
- zeitwerk (~> 2.6)
237
170
  rainbow (3.1.1)
238
171
  rake (13.2.1)
239
172
  random-port (0.7.5)
240
173
  tago (> 0)
241
- rdoc (6.12.0)
174
+ rdoc (6.13.1)
242
175
  psych (>= 4.0.0)
243
176
  regexp_parser (2.10.0)
244
- reline (0.6.0)
245
- io-console (~> 0.5)
246
177
  retries (0.0.5)
247
178
  rexml (3.4.1)
248
- rspec-core (3.13.3)
249
- rspec-support (~> 3.13.0)
250
- rspec-expectations (3.13.3)
251
- diff-lcs (>= 1.2.0, < 2.0)
252
- rspec-support (~> 3.13.0)
253
- rspec-mocks (3.13.2)
254
- diff-lcs (>= 1.2.0, < 2.0)
255
- rspec-support (~> 3.13.0)
256
- rspec-rails (7.1.1)
257
- actionpack (>= 7.0)
258
- activesupport (>= 7.0)
259
- railties (>= 7.0)
260
- rspec-core (~> 3.13)
261
- rspec-expectations (~> 3.13)
262
- rspec-mocks (~> 3.13)
263
- rspec-support (~> 3.13)
264
- rspec-support (3.13.2)
265
- rubocop (1.74.0)
179
+ rubocop (1.75.1)
266
180
  json (~> 2.3)
267
181
  language_server-protocol (~> 3.17.0.2)
268
182
  lint_roller (~> 1.1.0)
@@ -270,18 +184,19 @@ GEM
270
184
  parser (>= 3.3.0.2)
271
185
  rainbow (>= 2.2.2, < 4.0)
272
186
  regexp_parser (>= 2.9.3, < 3.0)
273
- rubocop-ast (>= 1.38.0, < 2.0)
187
+ rubocop-ast (>= 1.43.0, < 2.0)
274
188
  ruby-progressbar (~> 1.7)
275
189
  unicode-display_width (>= 2.4.0, < 4.0)
276
- rubocop-ast (1.40.0)
277
- parser (>= 3.3.1.0)
278
- rubocop-minitest (0.37.1)
190
+ rubocop-ast (1.43.0)
191
+ parser (>= 3.3.7.2)
192
+ prism (~> 1.4)
193
+ rubocop-minitest (0.38.0)
279
194
  lint_roller (~> 1.1)
280
- rubocop (>= 1.72.1, < 2.0)
195
+ rubocop (>= 1.75.0, < 2.0)
281
196
  rubocop-ast (>= 1.38.0, < 2.0)
282
- rubocop-performance (1.24.0)
197
+ rubocop-performance (1.25.0)
283
198
  lint_roller (~> 1.1)
284
- rubocop (>= 1.72.1, < 2.0)
199
+ rubocop (>= 1.75.0, < 2.0)
285
200
  rubocop-ast (>= 1.38.0, < 2.0)
286
201
  rubocop-rake (0.7.1)
287
202
  lint_roller (~> 1.1)
@@ -290,7 +205,6 @@ GEM
290
205
  lint_roller (~> 1.1)
291
206
  rubocop (~> 1.72, >= 1.72.1)
292
207
  ruby-progressbar (1.13.0)
293
- securerandom (0.4.1)
294
208
  simplecov (0.22.0)
295
209
  docile (~> 1.1)
296
210
  simplecov-html (~> 0.11)
@@ -300,22 +214,18 @@ GEM
300
214
  simplecov (~> 0.19)
301
215
  simplecov-html (0.13.1)
302
216
  simplecov_json_formatter (0.1.4)
303
- stringio (3.1.5)
217
+ stringio (3.1.6)
304
218
  sys-uname (1.3.1)
305
219
  ffi (~> 1.1)
306
220
  tago (0.1.0)
307
- thor (1.3.2)
308
221
  timeout (0.4.3)
309
222
  total (0.4.1)
310
223
  typhoeus (1.4.1)
311
224
  ethon (>= 0.9.0)
312
- tzinfo (2.0.6)
313
- concurrent-ruby (~> 1.0)
314
225
  unicode-display_width (3.1.4)
315
226
  unicode-emoji (~> 4.0, >= 4.0.4)
316
227
  unicode-emoji (4.0.4)
317
228
  uri (1.0.3)
318
- useragent (0.16.11)
319
229
  w3c_validators (1.3.7)
320
230
  json (>= 1.8)
321
231
  nokogiri (~> 1.6)
@@ -326,7 +236,6 @@ GEM
326
236
  hashdiff (>= 0.4.0, < 2.0.0)
327
237
  yaml (0.4.0)
328
238
  yard (0.9.37)
329
- zeitwerk (2.7.2)
330
239
 
331
240
  PLATFORMS
332
241
  aarch64-linux
@@ -339,17 +248,19 @@ PLATFORMS
339
248
  x86_64-linux
340
249
 
341
250
  DEPENDENCIES
251
+ base64 (> 0)
342
252
  cucumber (~> 9.2)
343
253
  judges!
344
254
  minitest (~> 5.25)
345
255
  minitest-reporters (~> 1.7)
346
256
  minitest-retry (~> 0.2)
347
257
  net-ping (~> 2.0)
258
+ os (> 0)
348
259
  qbash (> 0)
349
260
  rake (~> 13.2)
350
261
  random-port (~> 0.0)
351
- rspec-rails (~> 7.1)
352
- rubocop (= 1.74.0)
262
+ rdoc (> 0)
263
+ rubocop (~> 1.74)
353
264
  rubocop-minitest (> 0)
354
265
  rubocop-performance (> 0)
355
266
  rubocop-rake (> 0)
data/README.md CHANGED
@@ -10,6 +10,7 @@
10
10
  [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/github/yegor256/judges/master/frames)
11
11
  [![Hits-of-Code](https://hitsofcode.com/github/yegor256/judges)](https://hitsofcode.com/view/github/yegor256/judges)
12
12
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/judges/blob/master/LICENSE.txt)
13
+ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fyegor256%2Fjudges.svg?type=shield&issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2Fyegor256%2Fjudges?ref=badge_shield&issueType=license)
13
14
 
14
15
  A command line tool and a Ruby gem for running so called judges against a
15
16
  [factbase](https://github.com/yegor256/factbase).
data/Rakefile CHANGED
@@ -3,6 +3,7 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
+ require 'os'
6
7
  require 'qbash'
7
8
  require 'rubygems'
8
9
  require 'rake'
@@ -20,7 +21,7 @@ end
20
21
 
21
22
  ENV['RACK_ENV'] = 'test'
22
23
 
23
- task default: %i[clean test features picks reqs rubocop yard]
24
+ task default: %i[clean test features picks rubocop yard]
24
25
 
25
26
  require 'rake/testtask'
26
27
  desc 'Run all unit tests'
@@ -34,22 +35,18 @@ end
34
35
 
35
36
  desc 'Run them via Ruby, one by one'
36
37
  task :picks do
37
- Dir['test/**/*.rb'].each do |f|
38
- qbash("bundle exec ruby #{Shellwords.escape(f)}", log: $stdout)
39
- end
40
- end
41
-
42
- desc 'Require them via Ruby, one by one'
43
- task :reqs do
44
- Dir['lib/**/*.rb'].each do |f|
45
- qbash("bundle exec ruby #{Shellwords.escape(f)}", log: $stdout)
38
+ next if OS.windows?
39
+ %w[test lib].each do |d|
40
+ Dir["#{d}/**/*.rb"].each do |f|
41
+ qbash("bundle exec ruby #{Shellwords.escape(f)}", log: $stdout)
42
+ end
46
43
  end
47
44
  end
48
45
 
49
46
  require 'cucumber/rake/task'
50
47
  Cucumber::Rake::Task.new(:features) do |t|
51
48
  Rake::Cleaner.cleanup_files(['coverage'])
52
- t.cucumber_opts = %w[--no-color --format=summary --retry=2 --fail-fast --backtrace --order=random]
49
+ t.cucumber_opts = %w[--no-color --retry=2 --fail-fast --backtrace --order=random]
53
50
  end
54
51
  Cucumber::Rake::Task.new(:'features:html') do |t|
55
52
  t.profile = 'html_report'
@@ -65,5 +62,4 @@ require 'rubocop/rake_task'
65
62
  desc 'Run RuboCop on all directories'
66
63
  RuboCop::RakeTask.new(:rubocop) do |task|
67
64
  task.fail_on_error = true
68
- task.requires << 'rubocop-rspec'
69
65
  end
data/assets/index.css ADDED
@@ -0,0 +1,19 @@
1
+ /*
2
+ SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ * { font-family: monospace; }
7
+ section { width: 100%; }
8
+ article { border: none; }
9
+ header img { width: 3em; height: 3em; }
10
+ table { table-layout: fixed; }
11
+ td { word-wrap: break-word; }
12
+ .sorter { cursor: pointer; }
13
+ .S { color: #4A5240; }
14
+ .T { color: #2471A3; }
15
+ .I { color: #61304B; }
16
+ .F { color: #5C0029; }
17
+ .BR { color: #B6C649; }
18
+ .hidden { color: #C1C1C1; }
19
+ .w50 { width: 50%; }
data/assets/index.js ADDED
@@ -0,0 +1,17 @@
1
+ /*
2
+ SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ $(() => {
7
+ $('#facts').tablesorter();
8
+ });
9
+
10
+ updateTime = () => {
11
+ const now = new Date();
12
+ const isoTime = now.toISOString();
13
+ const timeElement = document.getElementById('current-time');
14
+ timeElement.textContent = `Current time: ${isoTime}`;
15
+ }
16
+ updateTime();
17
+ setInterval(updateTime, 1000);
data/assets/index.xsl CHANGED
@@ -10,12 +10,20 @@
10
10
  <xsl:param name="version"/>
11
11
  <xsl:param name="columns"/>
12
12
  <xsl:param name="hidden"/>
13
+ <xsl:param name="js_hash"/>
14
+ <xsl:param name="css_hash"/>
13
15
  <xsl:template name="javascript">
14
- <xsl:param name="url"/>
15
- <script type="text/javascript" src="{$url}">
16
+ <xsl:param name="url" as="string"/>
17
+ <xsl:param name="hash" as="string"/>
18
+ <script type="text/javascript" src="{$url}" integrity="{$hash}" crossorigin="anonymous">
16
19
  <xsl:text> </xsl:text>
17
20
  </script>
18
21
  </xsl:template>
22
+ <xsl:template name="css">
23
+ <xsl:param name="url" as="string"/>
24
+ <xsl:param name="hash" as="string"/>
25
+ <link href="{$url}" rel="stylesheet" integrity="{$hash}" crossorigin="anonymous"/>
26
+ </xsl:template>
19
27
  <xsl:template match="/">
20
28
  <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
21
29
  <html>
@@ -33,34 +41,34 @@
33
41
  </xsl:choose>
34
42
  </title>
35
43
  <link rel="icon" href="https://www.zerocracy.com/svg/logo.svg" type="image/svg"/>
36
- <link href="https://cdn.jsdelivr.net/gh/yegor256/tacit@gh-pages/tacit-css.min.css" rel="stylesheet"/>
37
- <link href="https://cdn.jsdelivr.net/gh/yegor256/drops@gh-pages/drops.min.css" rel="stylesheet"/>
44
+ <xsl:call-template name="css">
45
+ <xsl:with-param name="url">https://cdn.jsdelivr.net/npm/tacit-css@1.8.1/dist/tacit-css.min.css</xsl:with-param>
46
+ <xsl:with-param name="hash">sha384-JbsYayq5Otme+gjh/pl7NrA/qMIU0bxbdzKvYqQGHvvag0lHhM62TQnDzz+EyzXj</xsl:with-param>
47
+ </xsl:call-template>
48
+ <xsl:call-template name="css">
49
+ <xsl:with-param name="url">https://cdn.jsdelivr.net/npm/drops@0.2.0/dist/drops-0.2.0.min.css</xsl:with-param>
50
+ <xsl:with-param name="hash">sha384-5jl1QSYGvyjnoRf6lIhaq2MlbW/qjOvNay9i434tlxyKPqm+t1ed5vxKgT75C4xe</xsl:with-param>
51
+ </xsl:call-template>
52
+ <xsl:call-template name="css">
53
+ <xsl:with-param name="url">https://yegor256.github.io/judges/assets/index.css</xsl:with-param>
54
+ <xsl:with-param name="hash">
55
+ <xsl:value-of select="$css_hash"/>
56
+ </xsl:with-param>
57
+ </xsl:call-template>
38
58
  <xsl:call-template name="javascript">
39
- <xsl:with-param name="url">https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js</xsl:with-param>
59
+ <xsl:with-param name="url">https://code.jquery.com/jquery-3.7.1.min.js</xsl:with-param>
60
+ <xsl:with-param name="hash">sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=</xsl:with-param>
40
61
  </xsl:call-template>
41
62
  <xsl:call-template name="javascript">
42
63
  <xsl:with-param name="url">https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/js/jquery.tablesorter.min.js</xsl:with-param>
64
+ <xsl:with-param name="hash">sha384-+PEWXCk8F17zxsQsEjkuHjUN4yFMHv03eKxKLrqwDql8FJQM0NeSvHRZFVLfXyn7</xsl:with-param>
65
+ </xsl:call-template>
66
+ <xsl:call-template name="javascript">
67
+ <xsl:with-param name="url">https://yegor256.github.io/judges/assets/index.js</xsl:with-param>
68
+ <xsl:with-param name="hash">
69
+ <xsl:value-of select="$js_hash"/>
70
+ </xsl:with-param>
43
71
  </xsl:call-template>
44
- <style>
45
- * { font-family: monospace; }
46
- section { width: 100%; }
47
- article { border: none; }
48
- header img { width: 3em; height: 3em; }
49
- table { table-layout: fixed; }
50
- td { word-wrap: break-word; }
51
- .sorter { cursor: pointer; }
52
- .S { color: #4A5240; }
53
- .T { color: #2471A3; }
54
- .I { color: #61304B; }
55
- .F { color: #5C0029; }
56
- .BR { color: #B6C649; }
57
- .hidden { color: #C1C1C1; }
58
- </style>
59
- <script type="text/javascript">
60
- $(function() {
61
- $("#facts").tablesorter();
62
- });
63
- </script>
64
72
  </head>
65
73
  <body>
66
74
  <section>
@@ -111,16 +119,6 @@
111
119
  </p>
112
120
  </footer>
113
121
  </section>
114
- <script type="text/javascript">
115
- function updateTime() {
116
- const now = new Date();
117
- const isoTime = now.toISOString();
118
- const timeElement = document.getElementById('current-time');
119
- timeElement.textContent = `Current time: ${isoTime}`;
120
- }
121
- updateTime();
122
- setInterval(updateTime, 1000);
123
- </script>
124
122
  </body>
125
123
  </html>
126
124
  </xsl:template>
@@ -155,13 +153,13 @@
155
153
  <xsl:param name="cols"/>
156
154
  <xsl:choose>
157
155
  <xsl:when test="string-length($cols) &gt; 0">
158
- <col style=""/>
156
+ <col/>
159
157
  <xsl:call-template name="col">
160
158
  <xsl:with-param name="cols" select="substring-after($cols, ',')"/>
161
159
  </xsl:call-template>
162
160
  </xsl:when>
163
161
  <xsl:otherwise>
164
- <col style="width: 50%;"/>
162
+ <col class="w50"/>
165
163
  </xsl:otherwise>
166
164
  </xsl:choose>
167
165
  </xsl:template>
data/eslint.config.js ADDED
@@ -0,0 +1,26 @@
1
+ /*
2
+ * SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+
6
+ const { configs } = require('@eslint/js');
7
+
8
+ module.exports = [
9
+ {
10
+ ...configs.all,
11
+ files: ['**/*.js'],
12
+ ignores: ['node_modules/**/*.js', 'coverage/**/*.js', 'doc/**/*.js'],
13
+ languageOptions: {
14
+ ecmaVersion: 2019,
15
+ sourceType: 'module'
16
+ },
17
+ rules: {
18
+ ...configs.all.rules,
19
+ 'indent': ['error', 2],
20
+ 'max-len': ['error', { code: 200 }],
21
+ 'no-magic-numbers': 'off',
22
+ 'no-undef': 'off',
23
+ 'one-var': 'off'
24
+ }
25
+ }
26
+ ];
@@ -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.9.5 --verbose test --judge guess ./fixtures"
19
+ When I run bin/judges with "--factbase 0.9.10 --verbose test --judge guess ./fixtures"
20
20
  Then Exit code is zero
21
- And Stdout contains "Factbase version to be used: '0.9.5'"
21
+ And Stdout contains "Factbase version to be used: '0.9.10'"
22
22
 
23
23
  Scenario: Simple test of no judges
24
24
  Given I run bin/judges with "test --judge absent_for_sure ./fixtures"
@@ -57,7 +57,7 @@ Feature: Update
57
57
  """
58
58
  Then I run bin/judges with "--verbose update --timeout 1 --quiet . foo.fb"
59
59
  Then Stdout contains "execution expired"
60
- Then Stdout contains "judge timed out"
60
+ Then Stdout contains "judge timed out after"
61
61
  Then Stdout contains "1 judge(s) processed"
62
62
  Then Stdout contains "Update finished in 1 cycle(s), did 0i/0d/0a"
63
63
  And Exit code is zero
data/judges.gemspec CHANGED
@@ -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.38.1'
12
+ s.version = '0.39.1'
13
13
  s.license = 'MIT'
14
14
  s.summary = 'Command-Line Tool for a Factbase'
15
15
  s.description =
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
29
29
  s.add_dependency 'baza.rb', '~>0'
30
30
  s.add_dependency 'concurrent-ruby', '~>1.2'
31
31
  s.add_dependency 'elapsed', '~>0'
32
- s.add_dependency 'factbase', '>=0.9.1'
32
+ s.add_dependency 'factbase', '~>0.9'
33
33
  s.add_dependency 'gli', '~>2.21'
34
34
  s.add_dependency 'iri', '~>0'
35
35
  s.add_dependency 'loog', '~>0'