judges 0.0.32 → 0.0.33
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/Gemfile.lock +2 -2
- data/bin/judges +3 -5
- data/features/trim.feature +6 -7
- data/judges.gemspec +2 -2
- data/lib/judges/commands/trim.rb +1 -10
- data/test/commands/test_trim.rb +1 -1
- data/test/fb/test_once.rb +2 -2
- data/test/test_pack.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cdbff8b28d803f0ce0c0c8e8a934ea9af5b6d65b6396f04f94572bc21bb515e
|
4
|
+
data.tar.gz: 856504a44bf49b36ee64f3d304d14861965682df9257b6bbdb1284b71330d32d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddb58a1c8443ed4d61c3f55d155c34f0ba9e164d731167e7069169ac3ee7dbe9734fd7c4bd5a9e90a98787136b43d44966a3662fe3d13014298dcf1e770dd5d4
|
7
|
+
data.tar.gz: 9c8fe18c4bebae1ceeb56611b71862d5cda792d292e6ba33f6f1e6b0700483ab385281d00e6ca1a5f3e134d644f065706e547cc3d9b56c4e634dd7c46afac0dd
|
data/Gemfile.lock
CHANGED
@@ -3,7 +3,7 @@ PATH
|
|
3
3
|
specs:
|
4
4
|
judges (0.0.0)
|
5
5
|
backtrace (~> 0.3)
|
6
|
-
factbase (~> 0.0.
|
6
|
+
factbase (~> 0.0.32)
|
7
7
|
gli (~> 2.21)
|
8
8
|
loog (~> 0.2)
|
9
9
|
nokogiri (~> 1.10)
|
@@ -74,7 +74,7 @@ GEM
|
|
74
74
|
docile (1.4.0)
|
75
75
|
drb (2.2.1)
|
76
76
|
erubi (1.12.0)
|
77
|
-
factbase (0.0.
|
77
|
+
factbase (0.0.32)
|
78
78
|
json (~> 2.7)
|
79
79
|
loog (~> 0.2)
|
80
80
|
nokogiri (~> 1.10)
|
data/bin/judges
CHANGED
@@ -32,7 +32,7 @@ Encoding.default_internal = Encoding::UTF_8
|
|
32
32
|
class App
|
33
33
|
extend GLI::App
|
34
34
|
|
35
|
-
ver = '0.0.
|
35
|
+
ver = '0.0.33'
|
36
36
|
|
37
37
|
loog = Loog::REGULAR
|
38
38
|
|
@@ -98,9 +98,7 @@ class App
|
|
98
98
|
desc 'Remove the facts that are too old'
|
99
99
|
command :trim do |c|
|
100
100
|
c.desc 'Only the facts that match the expression are deleted'
|
101
|
-
c.flag([:query])
|
102
|
-
c.desc 'Remove facts that are older than X days'
|
103
|
-
c.flag([:days], type: Integer)
|
101
|
+
c.flag([:query], default_value: '(never)')
|
104
102
|
c.action do |global, options, args|
|
105
103
|
require_relative '../lib/judges/commands/trim'
|
106
104
|
Judges::Trim.new(loog).run(options, args)
|
@@ -114,7 +112,7 @@ class App
|
|
114
112
|
c.desc 'Generate output name of the file automatically'
|
115
113
|
c.switch([:auto], default_value: false)
|
116
114
|
c.desc 'Only the facts that match the expression are printed'
|
117
|
-
c.flag([:query], default_value: '()')
|
115
|
+
c.flag([:query], default_value: '(always)')
|
118
116
|
c.desc 'Print even if target file already exists and is older than the factbase'
|
119
117
|
c.switch([:force], default_value: false)
|
120
118
|
c.action do |global, options, args|
|
data/features/trim.feature
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
Feature: Trim
|
2
2
|
I want to trim a factbase
|
3
3
|
|
4
|
-
Scenario: Simple trimming of a factbase
|
4
|
+
Scenario: Simple trimming of a factbase, with a query
|
5
5
|
Given I make a temp directory
|
6
|
-
Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.
|
7
|
-
|
8
|
-
Given I run bin/judges with "trim --days 5 simple.fb"
|
6
|
+
Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'"
|
7
|
+
Given I run bin/judges with "trim --query '(eq foo 42)' simple.fb"
|
9
8
|
Then Stdout contains "1 fact(s) deleted"
|
10
9
|
And Exit code is zero
|
11
10
|
|
12
|
-
Scenario:
|
11
|
+
Scenario: Delete nothing by default
|
13
12
|
Given I make a temp directory
|
14
13
|
Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'"
|
15
|
-
Given I run bin/judges with "trim
|
16
|
-
Then Stdout contains "
|
14
|
+
Given I run bin/judges with "trim simple.fb"
|
15
|
+
Then Stdout contains "No facts deleted"
|
17
16
|
And Exit code is zero
|
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.33'
|
30
30
|
s.license = 'MIT'
|
31
31
|
s.summary = 'Command-Line Tool for a Factbase'
|
32
32
|
s.description = '
|
@@ -42,7 +42,7 @@ Gem::Specification.new do |s|
|
|
42
42
|
s.rdoc_options = ['--charset=UTF-8']
|
43
43
|
s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
|
44
44
|
s.add_runtime_dependency 'backtrace', '~> 0.3'
|
45
|
-
s.add_runtime_dependency 'factbase', '~>0.0.
|
45
|
+
s.add_runtime_dependency 'factbase', '~>0.0.32'
|
46
46
|
s.add_runtime_dependency 'gli', '~>2.21'
|
47
47
|
s.add_runtime_dependency 'loog', '~>0.2'
|
48
48
|
s.add_runtime_dependency 'nokogiri', '~> 1.10'
|
data/lib/judges/commands/trim.rb
CHANGED
@@ -38,17 +38,8 @@ class Judges::Trim
|
|
38
38
|
raise 'Exactly one argument required' unless args.size == 1
|
39
39
|
impex = Judges::Impex.new(@loog, args[0])
|
40
40
|
fb = impex.import
|
41
|
-
query = opts['query']
|
42
|
-
if query.nil?
|
43
|
-
days = opts['days']
|
44
|
-
day = Time.now - (days * 60 * 60 * 24)
|
45
|
-
query = "(lt time #{day.utc.iso8601})"
|
46
|
-
@loog.info("Deleting facts that are older than #{days} days")
|
47
|
-
else
|
48
|
-
raise 'Specify either --days or --query' unless opts['days'].nil?
|
49
|
-
end
|
50
41
|
elapsed(@loog) do
|
51
|
-
deleted = fb.query(query).delete!
|
42
|
+
deleted = fb.query(opts['query']).delete!
|
52
43
|
throw :'No facts deleted' if deleted.zero?
|
53
44
|
impex.export(fb)
|
54
45
|
throw :"🗑 #{deleted} fact(s) deleted"
|
data/test/commands/test_trim.rb
CHANGED
@@ -39,7 +39,7 @@ class TestTrim < Minitest::Test
|
|
39
39
|
before.insert.time = Time.now + 1
|
40
40
|
before.insert.time = Time.now - (100 * 24 * 60 * 60)
|
41
41
|
File.binwrite(file, before.export)
|
42
|
-
Judges::Trim.new(Loog::NULL).run({ '
|
42
|
+
Judges::Trim.new(Loog::NULL).run({ 'query' => "(lt time #{Time.now.utc.iso8601})" }, [file])
|
43
43
|
after = Factbase.new
|
44
44
|
after.import(File.binread(file))
|
45
45
|
assert_equal(1, after.size)
|
data/test/fb/test_once.rb
CHANGED
@@ -34,7 +34,7 @@ class TestOnce < Minitest::Test
|
|
34
34
|
def test_touch_once
|
35
35
|
fb = once(Factbase.new, judge: 'something')
|
36
36
|
fb.insert
|
37
|
-
fb.query('()').each { |f| f.foo = 42 }
|
38
|
-
assert(fb.query('()').extend(Enumerable).to_a.empty?)
|
37
|
+
fb.query('(always)').each { |f| f.foo = 42 }
|
38
|
+
assert(fb.query('(always)').extend(Enumerable).to_a.empty?)
|
39
39
|
end
|
40
40
|
end
|
data/test/test_pack.rb
CHANGED
@@ -104,7 +104,7 @@ class TestPack < Minitest::Test
|
|
104
104
|
pack = Judges::Pack.new(dir, lib, Loog::NULL)
|
105
105
|
fb = Factbase.new
|
106
106
|
pack.run(fb, {}, {}, {})
|
107
|
-
assert_equal(42, fb.query('()').each.to_a.first.bar)
|
107
|
+
assert_equal(42, fb.query('(always)').each.to_a.first.bar)
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: judges
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.33
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.32
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.
|
40
|
+
version: 0.0.32
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: gli
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|