judges 0.36.5 → 0.37.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/Rakefile +1 -1
- data/bin/judges +3 -1
- data/features/update.feature +12 -0
- data/judges.gemspec +1 -1
- data/lib/judges/commands/update.rb +4 -0
- data/lib/judges.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f31e0e559fe2bcf694b1e062e12c52fff8743bdf7d3ed2b8c2f255ccc930f4ad
|
4
|
+
data.tar.gz: e92dc454e97dcfc4959377e0d74dc144d2a154bfb7baf1e0de954fb498171151
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4176c791c84c596976a320a5b8bd494e101ddfc48421e28a9059a847ef5210db0c6c98ec1d40991eec0c710932c3f10fc59a7dd913c0306cdc374b49737b7d8
|
7
|
+
data.tar.gz: 6a64089d456705f4e72cb87e56b6e5fcf451edd0c5f5bdb0b79de6d4239979352c8ee11d2c7de935175732c19a882116a2590c841a7a30679afce389aa4be33e
|
data/Rakefile
CHANGED
data/bin/judges
CHANGED
@@ -71,8 +71,10 @@ class JudgesGLI extend GLI::App
|
|
71
71
|
c.flag([:judge], multiple: true)
|
72
72
|
c.desc 'The location of a Ruby library (directory with .rb files to include)'
|
73
73
|
c.flag([:lib])
|
74
|
+
c.desc 'Maximum time in seconds to spend on the entire update cycle'
|
75
|
+
c.flag([:lifetime], default_value: 300, type: Integer)
|
74
76
|
c.desc 'Maximum time in seconds to spend on every judge (forcefully terminate if over time)'
|
75
|
-
c.flag([:
|
77
|
+
c.flag([:timeout], default_value: 30, type: Integer)
|
76
78
|
c.desc 'Maximum number of update cycles to run'
|
77
79
|
c.flag([:'max-cycles'], default_value: 8, type: Integer)
|
78
80
|
c.desc 'Stay quiet even if some judges fail'
|
data/features/update.feature
CHANGED
@@ -18,6 +18,18 @@ Feature: Update
|
|
18
18
|
Then Stdout contains "Update finished in 3 cycle(s), did 3i/0d/3a"
|
19
19
|
And Exit code is zero
|
20
20
|
|
21
|
+
Scenario: Skips the judge on lifetime running out
|
22
|
+
Given I make a temp directory
|
23
|
+
Then I have a "simple/simple.rb" file with content:
|
24
|
+
"""
|
25
|
+
n = $fb.insert
|
26
|
+
sleep 1
|
27
|
+
"""
|
28
|
+
Then I run bin/judges with "--verbose update --quiet --lifetime 1 --max-cycles 5 . simple.fb"
|
29
|
+
Then Stdout contains "The 'simple' judge skipped, no time left"
|
30
|
+
Then Stdout contains "Update finished in 2 cycle(s), did 1i/0d/0a"
|
31
|
+
And Exit code is zero
|
32
|
+
|
21
33
|
Scenario: Use options from a file
|
22
34
|
Given I make a temp directory
|
23
35
|
Then I have a "simple/simple.rb" file with content:
|
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.
|
12
|
+
s.version = '0.37.0'
|
13
13
|
s.license = 'MIT'
|
14
14
|
s.summary = 'Command-Line Tool for a Factbase'
|
15
15
|
s.description =
|
@@ -26,6 +26,7 @@ require_relative '../../judges/to_rel'
|
|
26
26
|
class Judges::Update
|
27
27
|
def initialize(loog)
|
28
28
|
@loog = loog
|
29
|
+
@start = Time.now
|
29
30
|
end
|
30
31
|
|
31
32
|
# Run it (it is supposed to be called by the +bin/judges+ script.
|
@@ -148,6 +149,9 @@ class Judges::Update
|
|
148
149
|
def one_judge(opts, fb, judge, global, options, errors)
|
149
150
|
local = {}
|
150
151
|
begin
|
152
|
+
if opts['lifetime'] && Time.now - @start > opts['lifetime']
|
153
|
+
throw :"👎 The '#{judge.name}' judge skipped, no time left"
|
154
|
+
end
|
151
155
|
Timeout.timeout(opts['timeout']) do
|
152
156
|
judge.run(fb, global, local, options)
|
153
157
|
end
|
data/lib/judges.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: judges
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.37.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-03-
|
10
|
+
date: 2025-03-19 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: backtrace
|