judges 0.0.21 → 0.0.23
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/bin/judges +69 -65
- data/features/cli.feature +2 -2
- data/judges.gemspec +1 -1
- data/lib/judges/commands/update.rb +8 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15c96f4af35d626de3ae2f9de6d510550b2307a014b0a76148219f8a04091907
|
4
|
+
data.tar.gz: 19e2b425671a4a711b1c0ebf62b1ad17c25d13c355aeef050a48c030b22a47a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe53d0e31dcd30a125d8130fbb46ed1f13709a13f642c8e19db9ae74ef4aeb1485ea374ede9f1abe1f0f1308331fc98f507c532a97803a75b96c8fbf4a6f79b3
|
7
|
+
data.tar.gz: 36a8369665200eb177572803b555c4948ccfe1f96cc2ed695c9c104bcb8cf89ca11204224ddf2549ad5fa5f7ff7082069edd87e1aa94ac1acca7be22df54f1a7
|
data/bin/judges
CHANGED
@@ -29,91 +29,95 @@ require 'factbase'
|
|
29
29
|
Encoding.default_external = Encoding::UTF_8
|
30
30
|
Encoding.default_internal = Encoding::UTF_8
|
31
31
|
|
32
|
-
|
32
|
+
class App
|
33
|
+
extend GLI::App
|
33
34
|
|
34
|
-
|
35
|
+
ver = '0.0.23'
|
35
36
|
|
36
|
-
loog = Loog::REGULAR
|
37
|
+
loog = Loog::REGULAR
|
37
38
|
|
38
|
-
program_desc('Automated executor of judges for a factbase')
|
39
|
+
program_desc('Automated executor of judges for a factbase')
|
39
40
|
|
40
|
-
version(ver)
|
41
|
+
version(ver)
|
41
42
|
|
42
|
-
synopsis_format(:full)
|
43
|
+
synopsis_format(:full)
|
43
44
|
|
44
|
-
subcommand_option_handling(:normal)
|
45
|
+
subcommand_option_handling(:normal)
|
45
46
|
|
46
|
-
desc 'Make it more verbose, logging as much as possible'
|
47
|
-
switch([:v, :verbose])
|
47
|
+
desc 'Make it more verbose, logging as much as possible'
|
48
|
+
switch([:v, :verbose])
|
48
49
|
|
49
|
-
pre do |global, command, options, args|
|
50
|
-
|
51
|
-
|
50
|
+
pre do |global, command, options, args|
|
51
|
+
if global[:verbose]
|
52
|
+
loog = Loog::VERBOSE
|
53
|
+
end
|
54
|
+
loog.debug("judges #{ver}")
|
55
|
+
true
|
52
56
|
end
|
53
|
-
loog.debug("judges #{ver}")
|
54
|
-
true
|
55
|
-
end
|
56
57
|
|
57
|
-
desc 'Update the factbase by passing all judges one by one'
|
58
|
-
command :update do |c|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
58
|
+
desc 'Update the factbase by passing all judges one by one'
|
59
|
+
command :update do |c|
|
60
|
+
c.desc 'Options to pass to every judge'
|
61
|
+
c.flag([:o, :option], multiple: true, arg_name: '<key=value>')
|
62
|
+
c.desc 'Maximum number of update cycles to run'
|
63
|
+
c.flag([:'max-cycles'], default_value: 8, type: Integer)
|
64
|
+
c.desc 'Stay quiet even if some judges fail'
|
65
|
+
c.switch([:q, :quiet], default_value: false)
|
66
|
+
c.action do |global, options, args|
|
67
|
+
require_relative '../lib/judges/commands/update'
|
68
|
+
Judges::Update.new(loog).run(options, args)
|
69
|
+
end
|
66
70
|
end
|
67
|
-
end
|
68
71
|
|
69
|
-
desc 'Join two factbases'
|
70
|
-
command :print do |c|
|
71
|
-
|
72
|
-
|
73
|
-
|
72
|
+
desc 'Join two factbases'
|
73
|
+
command :print do |c|
|
74
|
+
c.action do |global, options, args|
|
75
|
+
require_relative '../lib/judges/commands/join'
|
76
|
+
Judges::Join.new(loog).run(options, args)
|
77
|
+
end
|
74
78
|
end
|
75
|
-
end
|
76
79
|
|
77
|
-
desc 'Remove the facts that are too old'
|
78
|
-
command :trim do |c|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
80
|
+
desc 'Remove the facts that are too old'
|
81
|
+
command :trim do |c|
|
82
|
+
c.desc 'Remove facts that are older than X days'
|
83
|
+
c.flag([:days], type: Integer, default_value: 90)
|
84
|
+
c.action do |global, options, args|
|
85
|
+
require_relative '../lib/judges/commands/trim'
|
86
|
+
Judges::Trim.new(loog).run(options, args)
|
87
|
+
end
|
84
88
|
end
|
85
|
-
end
|
86
89
|
|
87
|
-
desc 'Print the factbase into a human-readable format (YAML, JSON, etc.)'
|
88
|
-
command :print do |c|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
90
|
+
desc 'Print the factbase into a human-readable format (YAML, JSON, etc.)'
|
91
|
+
command :print do |c|
|
92
|
+
c.desc 'Output format (xml, json, or yaml)'
|
93
|
+
c.flag([:format], default_value: 'yaml')
|
94
|
+
c.desc 'Generate output name of the file automatically'
|
95
|
+
c.switch([:auto], default_value: false)
|
96
|
+
c.action do |global, options, args|
|
97
|
+
require_relative '../lib/judges/commands/print'
|
98
|
+
Judges::Print.new(loog).run(options, args)
|
99
|
+
end
|
96
100
|
end
|
97
|
-
end
|
98
101
|
|
99
|
-
desc 'Inspect the factbase and print all its possible meta-data'
|
100
|
-
command :inspect do |c|
|
101
|
-
|
102
|
-
|
103
|
-
|
102
|
+
desc 'Inspect the factbase and print all its possible meta-data'
|
103
|
+
command :inspect do |c|
|
104
|
+
c.action do |global, options, args|
|
105
|
+
require_relative '../lib/judges/commands/inspect'
|
106
|
+
Judges::Inspect.new(loog).run(options, args)
|
107
|
+
end
|
104
108
|
end
|
105
|
-
end
|
106
109
|
|
107
|
-
desc 'Run automated tests for all judges'
|
108
|
-
command :test do |c|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
110
|
+
desc 'Run automated tests for all judges'
|
111
|
+
command :test do |c|
|
112
|
+
c.desc 'Name of the test pack to run'
|
113
|
+
c.flag([:pack], multiple: true)
|
114
|
+
c.desc 'Stay quiet even if some tests fail or simply no tests executed?'
|
115
|
+
c.switch([:quiet], default_value: false)
|
116
|
+
c.action do |global, options, args|
|
117
|
+
require_relative '../lib/judges/commands/test'
|
118
|
+
Judges::Test.new(loog).run(options, args)
|
119
|
+
end
|
116
120
|
end
|
117
121
|
end
|
118
122
|
|
119
|
-
exit run(ARGV)
|
123
|
+
exit App.run(ARGV)
|
data/features/cli.feature
CHANGED
@@ -17,10 +17,10 @@ Feature: Simple Run
|
|
17
17
|
n = $fb.insert
|
18
18
|
n.kind = 'yes!'
|
19
19
|
"""
|
20
|
-
Then I run bin/judges with "--verbose update -o foo=1 -o bar=2 --max-cycles 3 . simple.fb"
|
20
|
+
Then I run bin/judges with "--verbose update --quiet -o foo=1 -o bar=2 --max-cycles 3 . simple.fb"
|
21
21
|
Then Stdout contains "foo → "
|
22
22
|
Then Stdout contains "bar → "
|
23
|
-
Then Stdout contains "1
|
23
|
+
Then Stdout contains "1 judge(s) processed"
|
24
24
|
Then Stdout contains "Update finished in 3 cycles"
|
25
25
|
And Exit code is zero
|
26
26
|
|
data/judges.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
|
27
27
|
s.required_ruby_version = '>=3.2'
|
28
28
|
s.name = 'judges'
|
29
|
-
s.version = '0.0.
|
29
|
+
s.version = '0.0.23'
|
30
30
|
s.license = 'MIT'
|
31
31
|
s.summary = 'Command-Line Tool for a Factbase'
|
32
32
|
s.description = '
|
@@ -67,7 +67,7 @@ class Judges::Update
|
|
67
67
|
errors = []
|
68
68
|
diff = 0
|
69
69
|
done = packs.each_with_index do |p, i|
|
70
|
-
@loog.info("
|
70
|
+
@loog.info("👉 Running #{p.name} (##{i}) at #{p.dir.to_rel}...")
|
71
71
|
before = fb.size
|
72
72
|
begin
|
73
73
|
p.run(fb, options)
|
@@ -76,11 +76,15 @@ class Judges::Update
|
|
76
76
|
errors << p.script
|
77
77
|
end
|
78
78
|
after = fb.size
|
79
|
-
@loog.info("Pack #{p.dir.to_rel} added #{after - before} facts") if after > before
|
79
|
+
@loog.info("👍 Pack #{p.dir.to_rel} added #{after - before} facts") if after > before
|
80
80
|
diff += after - before
|
81
81
|
end
|
82
|
-
|
83
|
-
|
82
|
+
if errors.empty?
|
83
|
+
@loog.info("👍 #{done} judge(s) processed")
|
84
|
+
else
|
85
|
+
@loog.info("❌ #{done} judge(s) processed with #{errors.size} errors")
|
86
|
+
raise "Failed to update correctly (#{errors.size} errors)" unless opts['quiet']
|
87
|
+
end
|
84
88
|
impex.export(fb)
|
85
89
|
diff
|
86
90
|
end
|