judges 0.0.32 → 0.0.33
Sign up to get free protection for your applications and to get access to all the features.
- 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
|