judges 0.31.1 → 0.32.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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/.0pdd.yml +2 -19
  3. data/.github/workflows/actionlint.yml +4 -20
  4. data/.github/workflows/codecov.yml +6 -20
  5. data/.github/workflows/copyrights.yml +4 -19
  6. data/.github/workflows/markdown-lint.yml +4 -19
  7. data/.github/workflows/pdd.yml +4 -19
  8. data/.github/workflows/rake.yml +5 -21
  9. data/.github/workflows/reuse.yml +19 -0
  10. data/.github/workflows/xcop.yml +4 -19
  11. data/.github/workflows/yamllint.yml +4 -19
  12. data/.gitignore +1 -0
  13. data/.rubocop.yml +5 -21
  14. data/.rultor.yml +3 -19
  15. data/.simplecov +2 -19
  16. data/Gemfile +9 -25
  17. data/Gemfile.lock +52 -42
  18. data/LICENSES/MIT.txt +21 -0
  19. data/REUSE.toml +25 -0
  20. data/Rakefile +3 -29
  21. data/assets/index.xsl +2 -21
  22. data/bin/judges +2 -19
  23. data/features/gem_package.feature +3 -0
  24. data/features/import.feature +3 -0
  25. data/features/inspect.feature +3 -0
  26. data/features/join.feature +3 -0
  27. data/features/misc.feature +3 -0
  28. data/features/print.feature +3 -0
  29. data/features/pull.feature +3 -0
  30. data/features/push.feature +3 -0
  31. data/features/step_definitions/steps.rb +2 -19
  32. data/features/support/env.rb +2 -19
  33. data/features/test.feature +3 -0
  34. data/features/trim.feature +3 -0
  35. data/features/update.feature +5 -2
  36. data/fixtures/guess/guess.rb +2 -19
  37. data/fixtures/guess/guess_made.yml +2 -19
  38. data/fixtures/guess/skipped.yml +2 -19
  39. data/fixtures/try/tried.yml +2 -19
  40. data/fixtures/try/try.rb +2 -19
  41. data/judges.gemspec +4 -21
  42. data/lib/judges/categories.rb +2 -19
  43. data/lib/judges/commands/eval.rb +2 -19
  44. data/lib/judges/commands/import.rb +2 -19
  45. data/lib/judges/commands/inspect.rb +2 -19
  46. data/lib/judges/commands/join.rb +2 -19
  47. data/lib/judges/commands/print.rb +2 -19
  48. data/lib/judges/commands/pull.rb +2 -19
  49. data/lib/judges/commands/push.rb +2 -19
  50. data/lib/judges/commands/test.rb +2 -19
  51. data/lib/judges/commands/trim.rb +2 -19
  52. data/lib/judges/commands/update.rb +25 -49
  53. data/lib/judges/impex.rb +2 -19
  54. data/lib/judges/judge.rb +6 -20
  55. data/lib/judges/judges.rb +2 -19
  56. data/lib/judges/options.rb +2 -19
  57. data/lib/judges/to_rel.rb +2 -19
  58. data/lib/judges.rb +3 -20
  59. data/test/commands/test_eval.rb +2 -19
  60. data/test/commands/test_import.rb +2 -19
  61. data/test/commands/test_inspect.rb +2 -19
  62. data/test/commands/test_join.rb +2 -19
  63. data/test/commands/test_print.rb +2 -19
  64. data/test/commands/test_pull.rb +2 -19
  65. data/test/commands/test_push.rb +2 -19
  66. data/test/commands/test_test.rb +8 -19
  67. data/test/commands/test_trim.rb +2 -19
  68. data/test/commands/test_update.rb +3 -20
  69. data/test/test__helper.rb +2 -19
  70. data/test/test_bin.rb +2 -19
  71. data/test/test_categories.rb +2 -19
  72. data/test/test_impex.rb +2 -19
  73. data/test/test_judge.rb +2 -19
  74. data/test/test_judges.rb +2 -19
  75. data/test/test_options.rb +2 -19
  76. data/test/test_to_rel.rb +2 -19
  77. metadata +7 -6
  78. data/lib/judges/churn.rb +0 -66
  79. data/test/test_churn.rb +0 -46
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.5.0)
9
+ factbase (>= 0.7.0)
10
10
  gli (~> 2.21)
11
11
  iri (~> 0)
12
12
  loog (~> 0)
@@ -98,13 +98,13 @@ GEM
98
98
  bigdecimal
99
99
  cucumber-gherkin (27.0.0)
100
100
  cucumber-messages (>= 19.1.4, < 23)
101
- cucumber-html-formatter (21.8.0)
102
- cucumber-messages (> 19, < 27)
101
+ cucumber-html-formatter (21.9.0)
102
+ cucumber-messages (> 19, < 28)
103
103
  cucumber-messages (22.0.0)
104
- cucumber-tag-expressions (6.1.1)
104
+ cucumber-tag-expressions (6.1.2)
105
105
  date (3.4.1)
106
106
  decoor (0.0.1)
107
- diff-lcs (1.5.1)
107
+ diff-lcs (1.6.0)
108
108
  docile (1.4.1)
109
109
  drb (2.2.1)
110
110
  elapsed (0.0.1)
@@ -113,7 +113,7 @@ GEM
113
113
  erubi (1.13.1)
114
114
  ethon (0.16.0)
115
115
  ffi (>= 1.15.0)
116
- factbase (0.5.0)
116
+ factbase (0.7.1)
117
117
  backtrace (> 0)
118
118
  decoor (> 0)
119
119
  json (~> 2.7)
@@ -151,10 +151,11 @@ GEM
151
151
  pp (>= 0.6.0)
152
152
  rdoc (>= 4.0.0)
153
153
  reline (>= 0.4.2)
154
- iri (0.8.0)
155
- json (2.9.1)
154
+ iri (0.10.0)
155
+ json (2.10.1)
156
156
  language_server-protocol (3.17.0.4)
157
- logger (1.6.5)
157
+ lint_roller (1.1.0)
158
+ logger (1.6.6)
158
159
  loofah (2.24.0)
159
160
  crass (~> 1.0.2)
160
161
  nokogiri (>= 1.12.0)
@@ -172,25 +173,25 @@ GEM
172
173
  multipart-post (2.4.1)
173
174
  net-http (0.6.0)
174
175
  uri
175
- nokogiri (1.18.2)
176
+ nokogiri (1.18.3)
176
177
  mini_portile2 (~> 2.8.2)
177
178
  racc (~> 1.4)
178
- nokogiri (1.18.2-aarch64-linux-gnu)
179
+ nokogiri (1.18.3-aarch64-linux-gnu)
179
180
  racc (~> 1.4)
180
- nokogiri (1.18.2-arm-linux-gnu)
181
+ nokogiri (1.18.3-arm-linux-gnu)
181
182
  racc (~> 1.4)
182
- nokogiri (1.18.2-arm64-darwin)
183
+ nokogiri (1.18.3-arm64-darwin)
183
184
  racc (~> 1.4)
184
- nokogiri (1.18.2-x64-mingw-ucrt)
185
+ nokogiri (1.18.3-x64-mingw-ucrt)
185
186
  racc (~> 1.4)
186
- nokogiri (1.18.2-x86_64-darwin)
187
+ nokogiri (1.18.3-x86_64-darwin)
187
188
  racc (~> 1.4)
188
- nokogiri (1.18.2-x86_64-linux-gnu)
189
+ nokogiri (1.18.3-x86_64-linux-gnu)
189
190
  racc (~> 1.4)
190
191
  ostruct (0.6.1)
191
192
  others (0.0.3)
192
193
  parallel (1.26.3)
193
- parser (3.3.7.0)
194
+ parser (3.3.7.1)
194
195
  ast (~> 2.4.1)
195
196
  racc
196
197
  pp (0.6.2)
@@ -201,7 +202,7 @@ GEM
201
202
  stringio
202
203
  public_suffix (6.0.1)
203
204
  racc (1.8.1)
204
- rack (3.1.8)
205
+ rack (3.1.10)
205
206
  rack-session (2.1.0)
206
207
  base64 (>= 0.1.0)
207
208
  rack (>= 3.0.0)
@@ -228,14 +229,14 @@ GEM
228
229
  rake (13.2.1)
229
230
  random-port (0.7.5)
230
231
  tago (> 0)
231
- rdoc (6.11.0)
232
+ rdoc (6.12.0)
232
233
  psych (>= 4.0.0)
233
234
  regexp_parser (2.10.0)
234
235
  reline (0.6.0)
235
236
  io-console (~> 0.5)
236
237
  retries (0.0.5)
237
- rexml (3.4.0)
238
- rspec-core (3.13.2)
238
+ rexml (3.4.1)
239
+ rspec-core (3.13.3)
239
240
  rspec-support (~> 3.13.0)
240
241
  rspec-expectations (3.13.3)
241
242
  diff-lcs (>= 1.2.0, < 2.0)
@@ -243,7 +244,7 @@ GEM
243
244
  rspec-mocks (3.13.2)
244
245
  diff-lcs (>= 1.2.0, < 2.0)
245
246
  rspec-support (~> 3.13.0)
246
- rspec-rails (7.1.0)
247
+ rspec-rails (7.1.1)
247
248
  actionpack (>= 7.0)
248
249
  activesupport (>= 7.0)
249
250
  railties (>= 7.0)
@@ -252,26 +253,33 @@ GEM
252
253
  rspec-mocks (~> 3.13)
253
254
  rspec-support (~> 3.13)
254
255
  rspec-support (3.13.2)
255
- rubocop (1.71.0)
256
+ rubocop (1.72.2)
256
257
  json (~> 2.3)
257
- language_server-protocol (>= 3.17.0)
258
+ language_server-protocol (~> 3.17.0.2)
259
+ lint_roller (~> 1.1.0)
258
260
  parallel (~> 1.10)
259
261
  parser (>= 3.3.0.2)
260
262
  rainbow (>= 2.2.2, < 4.0)
261
263
  regexp_parser (>= 2.9.3, < 3.0)
262
- rubocop-ast (>= 1.36.2, < 2.0)
264
+ rubocop-ast (>= 1.38.0, < 2.0)
263
265
  ruby-progressbar (~> 1.7)
264
266
  unicode-display_width (>= 2.4.0, < 4.0)
265
267
  rubocop-ast (1.38.0)
266
268
  parser (>= 3.3.1.0)
267
- rubocop-minitest (0.36.0)
268
- rubocop (>= 1.61, < 2.0)
269
- rubocop-ast (>= 1.31.1, < 2.0)
270
- rubocop-performance (1.23.1)
271
- rubocop (>= 1.48.1, < 2.0)
272
- rubocop-ast (>= 1.31.1, < 2.0)
273
- rubocop-rspec (3.4.0)
274
- rubocop (~> 1.61)
269
+ rubocop-minitest (0.37.1)
270
+ lint_roller (~> 1.1)
271
+ rubocop (>= 1.72.1, < 2.0)
272
+ rubocop-ast (>= 1.38.0, < 2.0)
273
+ rubocop-performance (1.24.0)
274
+ lint_roller (~> 1.1)
275
+ rubocop (>= 1.72.1, < 2.0)
276
+ rubocop-ast (>= 1.38.0, < 2.0)
277
+ rubocop-rake (0.7.1)
278
+ lint_roller (~> 1.1)
279
+ rubocop (>= 1.72.1)
280
+ rubocop-rspec (3.5.0)
281
+ lint_roller (~> 1.1)
282
+ rubocop (~> 1.72, >= 1.72.1)
275
283
  ruby-progressbar (1.13.0)
276
284
  securerandom (0.4.1)
277
285
  simplecov (0.22.0)
@@ -283,7 +291,7 @@ GEM
283
291
  simplecov (~> 0.19)
284
292
  simplecov-html (0.13.1)
285
293
  simplecov_json_formatter (0.1.4)
286
- stringio (3.1.2)
294
+ stringio (3.1.5)
287
295
  sys-uname (1.3.1)
288
296
  ffi (~> 1.1)
289
297
  tago (0.0.2)
@@ -302,18 +310,19 @@ GEM
302
310
  json (>= 1.8)
303
311
  nokogiri (~> 1.6)
304
312
  rexml (~> 3.2)
305
- webmock (3.24.0)
313
+ webmock (3.25.0)
306
314
  addressable (>= 2.8.0)
307
315
  crack (>= 0.3.2)
308
316
  hashdiff (>= 0.4.0, < 2.0.0)
309
317
  yaml (0.4.0)
310
318
  yard (0.9.37)
311
- zeitwerk (2.7.1)
319
+ zeitwerk (2.7.2)
312
320
 
313
321
  PLATFORMS
314
322
  aarch64-linux
315
323
  arm-linux
316
324
  arm64-darwin
325
+ arm64-darwin-23
317
326
  x64-mingw-ucrt
318
327
  x86-linux
319
328
  x86_64-darwin
@@ -326,15 +335,16 @@ DEPENDENCIES
326
335
  minitest-reporters (= 1.7.1)
327
336
  rake (= 13.2.1)
328
337
  random-port (~> 0.0)
329
- rspec-rails (= 7.1.0)
330
- rubocop (= 1.71.0)
331
- rubocop-minitest (= 0.36.0)
332
- rubocop-performance (= 1.23.1)
333
- rubocop-rspec (= 3.4.0)
338
+ rspec-rails (= 7.1.1)
339
+ rubocop (= 1.72.2)
340
+ rubocop-minitest (> 0)
341
+ rubocop-performance (> 0)
342
+ rubocop-rake (> 0)
343
+ rubocop-rspec (> 0)
334
344
  simplecov (= 0.22.0)
335
345
  simplecov-cobertura (= 2.1.0)
336
346
  w3c_validators (= 1.3.7)
337
- webmock (= 3.24.0)
347
+ webmock (= 3.25.0)
338
348
  yard (= 0.9.37)
339
349
 
340
350
  BUNDLED WITH
data/LICENSES/MIT.txt ADDED
@@ -0,0 +1,21 @@
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2024-2025 Yegor Bugayenko
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the 'Software'), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/REUSE.toml ADDED
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ version = 1
5
+ [[annotations]]
6
+ path = [
7
+ "**/*.jpg",
8
+ "**/*.json",
9
+ "**/*.md",
10
+ "**/*.pdf",
11
+ "**/*.png",
12
+ "**/*.svg",
13
+ "**/.gitignore",
14
+ ".gitattributes",
15
+ ".gitignore",
16
+ ".gitleaksignore",
17
+ ".pdd",
18
+ ".xcop",
19
+ "Gemfile.lock",
20
+ "README.md",
21
+ "renovate.json",
22
+ ]
23
+ precedence = "override"
24
+ SPDX-FileCopyrightText = "Copyright (c) 2025 Yegor Bugayenko"
25
+ SPDX-License-Identifier = "MIT"
data/Rakefile CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024-2025 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'rubygems'
24
7
  require 'rake'
@@ -35,7 +18,7 @@ end
35
18
 
36
19
  ENV['RACK_ENV'] = 'test'
37
20
 
38
- task default: %i[clean test features rubocop yard copyright]
21
+ task default: %i[clean test features rubocop yard]
39
22
 
40
23
  require 'rake/testtask'
41
24
  desc 'Run all unit tests'
@@ -68,12 +51,3 @@ RuboCop::RakeTask.new(:rubocop) do |task|
68
51
  task.fail_on_error = true
69
52
  task.requires << 'rubocop-rspec'
70
53
  end
71
-
72
- task :copyright do
73
- sh "grep -q -r '#{Date.today.strftime('%Y')}' \
74
- --include '*.rb' \
75
- --include '*.yml' \
76
- --include '*.txt' \
77
- --include 'Rakefile' \
78
- ."
79
- end
data/assets/index.xsl CHANGED
@@ -1,26 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!--
3
- (The MIT License)
4
-
5
- Copyright (c) 2024-2025 Yegor Bugayenko
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the 'Software'), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in all
15
- copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- SOFTWARE.
3
+ * SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ * SPDX-License-Identifier: MIT
24
5
  -->
25
6
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
26
7
  <xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8" indent="yes"/>
data/bin/judges CHANGED
@@ -1,24 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # Copyright (c) 2024-2025 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  $stdout.sync = true
24
7
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Gem Package
2
5
  As a source code writer I want to be able to
3
6
  judgeage the Gem into .gem file
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Import
2
5
  I want to import YAML into a factbase
3
6
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Inspect
2
5
  I want to inspect a factbase
3
6
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Join
2
5
  I want to join two factbases
3
6
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Misc
2
5
  I want to get some meta info
3
6
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Print
2
5
  I want to print a factbase
3
6
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Pull
2
5
  I want to pull a factbase
3
6
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Push
2
5
  I want to push a factbase
3
6
 
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024-2025 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'tmpdir'
24
7
  require 'English'
@@ -1,23 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024-2025 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'simplecov'
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Test
2
5
  I want to test a few judges
3
6
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Trim
2
5
  I want to trim a factbase
3
6
 
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
3
+
1
4
  Feature: Update
2
5
  I want to run a few judges over a factbase
3
6
 
@@ -12,7 +15,7 @@ Feature: Update
12
15
  Then Stdout contains "FOO → "
13
16
  Then Stdout contains "BAR → "
14
17
  Then Stdout contains "1 judge(s) processed"
15
- Then Stdout contains "Update finished in 3 cycle(s), modified 3/0 fact(s)"
18
+ Then Stdout contains "Update finished in 3 cycle(s), did 3i/0d/3a"
16
19
  And Exit code is zero
17
20
 
18
21
  Scenario: Use options from a file
@@ -43,7 +46,7 @@ Feature: Update
43
46
  Then I run bin/judges with "--verbose update --timeout 1 --quiet . foo.fb"
44
47
  Then Stdout contains "timed out"
45
48
  Then Stdout contains "1 judge(s) processed"
46
- Then Stdout contains "Update finished in 1 cycle(s), modified 0/0 fact(s)"
49
+ Then Stdout contains "Update finished in 1 cycle(s), did 0i/0d/0a"
47
50
  And Exit code is zero
48
51
 
49
52
  Scenario: Simple run of a few judges, with a lib
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024-2025 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  $loog.info("Trying to guess a number (judge=#{$judge})...")
24
7
  $fb.txn do |fbt|
@@ -1,22 +1,5 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
21
4
  input: []
22
5
  expected:
@@ -1,22 +1,5 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
21
4
  skip: true
22
5
  input: []
@@ -1,22 +1,5 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
21
4
  input:
22
5
  -
data/fixtures/try/try.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024-2025 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  $fb.query("(and (exists number) (lt time #{Time.now.utc.iso8601}))").each do |f|
24
7
  n = $fb.insert