judges 0.59.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fbfe4daabeca60eecc9e2ba66e0d6cda20fb621d256bf4cade0bc2aab955f2be
4
- data.tar.gz: 2986980056eab03702155222b721356aa837a392c558a2d0f253c3ee36113909
3
+ metadata.gz: 5ac172cd19babb5a8fcbe6b7bc6311b70df9ff437dfb8bff633ffeeaf68218ce
4
+ data.tar.gz: 34776e965033db141dfabd895e41f554fffb6977caeb7aa6a39718c61d67d228
5
5
  SHA512:
6
- metadata.gz: d39801c83beda0468f25f4087c8f771fb1a6e4d4112b9744c3f2a4758ee930502b7f401990a733ac04cf0d74793b6b2670af396ce01943ec32661a0b88deea3a
7
- data.tar.gz: 0d909842642d840cdcae1cda7a8ca183f507a8ae7661c629559f2341684ced0e41b2bb28f785c23238262c22e8c01b7dd860cca8defeb9818e77bc21621bf29b
6
+ metadata.gz: 6965159d5e0cf14900bb8a7ac9b546e809ba199b52c6581edd3819a1a0d477b8e1536ece942971e16aadf951987badcae88e16a93291965037f9693d42c32358
7
+ data.tar.gz: 07313a43d4badf58218d153ba18264090ef4ad57bf3d195fce77a48009f891453b817eccbbc504b5be29fefa55266ad8c5ebb1ec8ab17a8a88a4836e9d229571
data/Gemfile CHANGED
@@ -18,6 +18,7 @@ gem 'os', '~>1.1', require: false
18
18
  gem 'qbash', '~>0.4', require: false
19
19
  gem 'rake', '~>13.2', require: false
20
20
  gem 'random-port', '~>0.7', require: false
21
+ gem 'rdoc', '7.2.0', require: false # GPL
21
22
  gem 'rubocop', '~>1.74', require: false
22
23
  gem 'rubocop-minitest', '~>0.38', require: false
23
24
  gem 'rubocop-performance', '~>1.25', require: false
@@ -26,4 +27,4 @@ gem 'simplecov', '~>0.22', require: false
26
27
  gem 'simplecov-cobertura', '~>3.0', require: false
27
28
  gem 'w3c_validators', '~>1.3', require: false
28
29
  gem 'webmock', '~>3.25', require: false
29
- 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.2)
32
+ baza.rb (0.14.3)
32
33
  backtrace (~> 0.4)
33
34
  elapsed (~> 0.2)
34
35
  faraday (~> 2.13)
@@ -59,29 +60,31 @@ GEM
59
60
  multi_test (~> 1.1)
60
61
  sys-uname (~> 1.3)
61
62
  cucumber-ci-environment (11.0.0)
62
- cucumber-core (16.1.1)
63
+ cucumber-core (16.2.0)
63
64
  cucumber-gherkin (> 36, < 40)
64
65
  cucumber-messages (> 31, < 33)
65
66
  cucumber-tag-expressions (> 6, < 9)
66
- cucumber-cucumber-expressions (18.0.1)
67
+ cucumber-cucumber-expressions (19.0.0)
67
68
  bigdecimal
68
- cucumber-gherkin (37.0.1)
69
- cucumber-messages (>= 31, < 32)
69
+ cucumber-gherkin (38.0.0)
70
+ cucumber-messages (>= 31, < 33)
70
71
  cucumber-html-formatter (22.3.0)
71
72
  cucumber-messages (> 23, < 33)
72
- cucumber-messages (31.1.0)
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.1)
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.19.2)
87
+ factbase (0.19.6)
85
88
  backtrace (~> 0.4)
86
89
  decoor (~> 0.1)
87
90
  ellipsized (~> 0.3)
@@ -92,11 +95,11 @@ 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
104
  faraday-multipart (1.2.0)
102
105
  multipart-post (~> 2.0)
@@ -104,24 +107,25 @@ GEM
104
107
  net-http (~> 0.5)
105
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.18.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)
@@ -133,30 +137,30 @@ GEM
133
137
  builder
134
138
  minitest (>= 5.0)
135
139
  ruby-progressbar
136
- minitest-retry (0.3.0)
140
+ minitest-retry (0.3.1)
137
141
  minitest (>= 5.0)
138
142
  moments (0.3.0)
139
143
  multi_test (1.1.0)
140
144
  multipart-post (2.4.1)
141
145
  net-http (0.9.1)
142
146
  uri (>= 0.11.1)
143
- nokogiri (1.18.10-aarch64-linux-gnu)
147
+ nokogiri (1.19.0-aarch64-linux-gnu)
144
148
  racc (~> 1.4)
145
- nokogiri (1.18.10-aarch64-linux-musl)
149
+ nokogiri (1.19.0-aarch64-linux-musl)
146
150
  racc (~> 1.4)
147
- nokogiri (1.18.10-arm-linux-gnu)
151
+ nokogiri (1.19.0-arm-linux-gnu)
148
152
  racc (~> 1.4)
149
- nokogiri (1.18.10-arm-linux-musl)
153
+ nokogiri (1.19.0-arm-linux-musl)
150
154
  racc (~> 1.4)
151
- nokogiri (1.18.10-arm64-darwin)
155
+ nokogiri (1.19.0-arm64-darwin)
152
156
  racc (~> 1.4)
153
- nokogiri (1.18.10-x64-mingw-ucrt)
157
+ nokogiri (1.19.0-x64-mingw-ucrt)
154
158
  racc (~> 1.4)
155
- nokogiri (1.18.10-x86_64-darwin)
159
+ nokogiri (1.19.0-x86_64-darwin)
156
160
  racc (~> 1.4)
157
- nokogiri (1.18.10-x86_64-linux-gnu)
161
+ nokogiri (1.19.0-x86_64-linux-gnu)
158
162
  racc (~> 1.4)
159
- nokogiri (1.18.10-x86_64-linux-musl)
163
+ nokogiri (1.19.0-x86_64-linux-musl)
160
164
  racc (~> 1.4)
161
165
  online (0.3.0)
162
166
  openssl (>= 3)
@@ -166,12 +170,15 @@ GEM
166
170
  ostruct (0.6.3)
167
171
  others (0.1.1)
168
172
  parallel (1.27.0)
169
- parser (3.3.10.0)
173
+ parser (3.3.10.1)
170
174
  ast (~> 2.4.1)
171
175
  racc
172
- prism (1.7.0)
173
- public_suffix (7.0.0)
174
- qbash (0.5.0)
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)
175
182
  backtrace (> 0)
176
183
  elapsed (> 0)
177
184
  loog (> 0)
@@ -179,12 +186,16 @@ GEM
179
186
  racc (1.8.1)
180
187
  rainbow (3.1.1)
181
188
  rake (13.3.1)
182
- random-port (0.7.6)
189
+ random-port (0.8.2)
183
190
  tago (~> 0.0)
191
+ rdoc (7.2.0)
192
+ erb
193
+ psych (>= 4.0.0)
194
+ tsort
184
195
  regexp_parser (2.11.3)
185
196
  retries (0.0.5)
186
197
  rexml (3.4.4)
187
- rubocop (1.82.1)
198
+ rubocop (1.84.2)
188
199
  json (~> 2.3)
189
200
  language_server-protocol (~> 3.17.0.2)
190
201
  lint_roller (~> 1.1.0)
@@ -192,7 +203,7 @@ GEM
192
203
  parser (>= 3.3.0.2)
193
204
  rainbow (>= 2.2.2, < 4.0)
194
205
  regexp_parser (>= 2.9.3, < 3.0)
195
- rubocop-ast (>= 1.48.0, < 2.0)
206
+ rubocop-ast (>= 1.49.0, < 2.0)
196
207
  ruby-progressbar (~> 1.7)
197
208
  unicode-display_width (>= 2.4.0, < 4.0)
198
209
  rubocop-ast (1.49.0)
@@ -219,12 +230,14 @@ GEM
219
230
  simplecov (~> 0.19)
220
231
  simplecov-html (0.13.2)
221
232
  simplecov_json_formatter (0.1.4)
233
+ stringio (3.2.0)
222
234
  sys-uname (1.4.1)
223
235
  ffi (~> 1.1)
224
236
  memoist3 (~> 1.0.0)
225
- tago (0.6.0)
237
+ tago (0.7.0)
226
238
  timeout (0.6.0)
227
239
  total (0.4.2)
240
+ tsort (0.2.0)
228
241
  typhoeus (1.4.1)
229
242
  ethon (>= 0.9.0)
230
243
  unicode-display_width (3.2.0)
@@ -267,6 +280,7 @@ DEPENDENCIES
267
280
  qbash (~> 0.4)
268
281
  rake (~> 13.2)
269
282
  random-port (~> 0.7)
283
+ rdoc (= 7.2.0)
270
284
  rubocop (~> 1.74)
271
285
  rubocop-minitest (~> 0.38)
272
286
  rubocop-performance (~> 1.25)
@@ -275,7 +289,7 @@ DEPENDENCIES
275
289
  simplecov-cobertura (~> 3.0)
276
290
  w3c_validators (~> 1.3)
277
291
  webmock (~> 3.25)
278
- yard (~> 0.9)
292
+ yard (= 0.9.38)
279
293
 
280
294
  BUNDLED WITH
281
295
  2.6.8
data/Rakefile CHANGED
@@ -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
@@ -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.2 --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.19.2'"
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/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.59.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'
@@ -2,12 +2,12 @@
2
2
 
3
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'
@@ -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
  )
@@ -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
data/lib/judges/judge.rb CHANGED
@@ -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.rb CHANGED
@@ -8,5 +8,5 @@
8
8
  # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
9
9
  # License:: MIT
10
10
  module Judges
11
- VERSION = '0.59.0' unless const_defined?(:VERSION)
11
+ VERSION = '0.60.0' unless const_defined?(:VERSION)
12
12
  end
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.59.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