fbe 0.0.6 → 0.0.7
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/.rubocop.yml +2 -2
- data/Gemfile +1 -1
- data/Gemfile.lock +5 -5
- data/lib/fbe/conclude.rb +0 -6
- data/lib/fbe/fb.rb +15 -13
- data/lib/fbe/iterate.rb +30 -6
- data/lib/fbe.rb +1 -1
- data/test/fbe/test_conclude.rb +3 -0
- data/test/fbe/test_fb.rb +1 -0
- 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: a0081d0ed95bf4d88cc396b55651521cf252d5a7894c93e5942a4f44f902a3bd
|
4
|
+
data.tar.gz: b9624f277446d361ac46b2e89d04e4b8b4a20c93adfa8c2f5b0452febde43b7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92fd51fff1c6f6347bfe1a89caa2e94bca3277c963ccaf4cce54b33144e1a38f6e060f771e8cab07503d064f1a1c4cbae47cbd5faca2ac338b6240e8308d3aff
|
7
|
+
data.tar.gz: 3e03f00ef4d1c127aa021c89a72ec3f8b273b43fe2bef85bc944063e52ae0fb77a4f93d8883b6c4855852b5f67c067ffd37be04bc7b1b73cc70b454d8e295a94
|
data/.rubocop.yml
CHANGED
@@ -40,10 +40,10 @@ Style/ClassAndModuleChildren:
|
|
40
40
|
Enabled: false
|
41
41
|
Layout/MultilineMethodCallIndentation:
|
42
42
|
Enabled: false
|
43
|
+
Metrics/BlockLength:
|
44
|
+
Enabled: false
|
43
45
|
Metrics/AbcSize:
|
44
46
|
Enabled: false
|
45
|
-
Metrics/BlockLength:
|
46
|
-
Max: 30
|
47
47
|
Metrics/CyclomaticComplexity:
|
48
48
|
Max: 25
|
49
49
|
Metrics/PerceivedComplexity:
|
data/Gemfile
CHANGED
@@ -28,7 +28,7 @@ gem 'rake', '13.2.1', require: false
|
|
28
28
|
gem 'rspec-rails', '6.1.3', require: false
|
29
29
|
gem 'rubocop', '1.64.1', require: false
|
30
30
|
gem 'rubocop-performance', '1.21.1', require: false
|
31
|
-
gem 'rubocop-rspec', '3.0.
|
31
|
+
gem 'rubocop-rspec', '3.0.2', require: false
|
32
32
|
gem 'simplecov', '0.22.0', require: false
|
33
33
|
gem 'simplecov-cobertura', '2.1.0', require: false
|
34
34
|
gem 'yard', '0.9.36', require: false
|
data/Gemfile.lock
CHANGED
@@ -62,7 +62,7 @@ GEM
|
|
62
62
|
erubi (1.13.0)
|
63
63
|
ethon (0.16.0)
|
64
64
|
ffi (>= 1.15.0)
|
65
|
-
factbase (0.0.
|
65
|
+
factbase (0.0.60)
|
66
66
|
backtrace (~> 0.3)
|
67
67
|
decoor (~> 0.0)
|
68
68
|
json (~> 2.7)
|
@@ -94,7 +94,7 @@ GEM
|
|
94
94
|
reline (>= 0.4.2)
|
95
95
|
iri (0.8.0)
|
96
96
|
json (2.7.2)
|
97
|
-
judges (0.15.
|
97
|
+
judges (0.15.3)
|
98
98
|
backtrace (~> 0.3)
|
99
99
|
concurrent-ruby (~> 1.2)
|
100
100
|
factbase (~> 0.0)
|
@@ -139,7 +139,7 @@ GEM
|
|
139
139
|
stringio
|
140
140
|
public_suffix (6.0.0)
|
141
141
|
racc (1.8.0)
|
142
|
-
rack (3.1.
|
142
|
+
rack (3.1.6)
|
143
143
|
rack-session (2.0.0)
|
144
144
|
rack (>= 3.0.0)
|
145
145
|
rack-test (2.1.0)
|
@@ -205,7 +205,7 @@ GEM
|
|
205
205
|
rubocop-performance (1.21.1)
|
206
206
|
rubocop (>= 1.48.1, < 2.0)
|
207
207
|
rubocop-ast (>= 1.31.1, < 2.0)
|
208
|
-
rubocop-rspec (3.0.
|
208
|
+
rubocop-rspec (3.0.2)
|
209
209
|
rubocop (~> 1.61)
|
210
210
|
ruby-progressbar (1.13.0)
|
211
211
|
sawyer (0.9.2)
|
@@ -251,7 +251,7 @@ DEPENDENCIES
|
|
251
251
|
rspec-rails (= 6.1.3)
|
252
252
|
rubocop (= 1.64.1)
|
253
253
|
rubocop-performance (= 1.21.1)
|
254
|
-
rubocop-rspec (= 3.0.
|
254
|
+
rubocop-rspec (= 3.0.2)
|
255
255
|
simplecov (= 0.22.0)
|
256
256
|
simplecov-cobertura (= 2.1.0)
|
257
257
|
yard (= 0.9.36)
|
data/lib/fbe/conclude.rb
CHANGED
@@ -44,7 +44,6 @@ class Fbe::Conclude
|
|
44
44
|
@loog = loog
|
45
45
|
@query = nil
|
46
46
|
@follows = []
|
47
|
-
@threshold = 9999
|
48
47
|
@quota_aware = false
|
49
48
|
end
|
50
49
|
|
@@ -57,10 +56,6 @@ class Fbe::Conclude
|
|
57
56
|
@query = query
|
58
57
|
end
|
59
58
|
|
60
|
-
def threshold(max)
|
61
|
-
@threshold = max
|
62
|
-
end
|
63
|
-
|
64
59
|
def follow(props)
|
65
60
|
@follows = props.split
|
66
61
|
end
|
@@ -96,7 +91,6 @@ class Fbe::Conclude
|
|
96
91
|
@fb.txn do |fbt|
|
97
92
|
fbt.query(@query).each do |a|
|
98
93
|
throw :stop if @quota_aware && Fbe.octo(loog: @loog).off_quota
|
99
|
-
throw :stop if passed >= @threshold
|
100
94
|
n = yield fbt, a
|
101
95
|
@loog.info("#{n.what}: #{n.details}") unless n.nil?
|
102
96
|
passed += 1
|
data/lib/fbe/fb.rb
CHANGED
@@ -29,18 +29,20 @@ require 'factbase/pre'
|
|
29
29
|
require 'factbase/rules'
|
30
30
|
require_relative '../fbe'
|
31
31
|
|
32
|
-
def Fbe.fb
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
32
|
+
def Fbe.fb(global: $global)
|
33
|
+
global[:fb] ||= begin
|
34
|
+
rules = Dir.glob(File.join('rules', '*.fe')).map { |f| File.read(f) }
|
35
|
+
fb = Factbase::Rules.new(
|
36
|
+
$fb,
|
37
|
+
"(and \n#{rules.join("\n")}\n)",
|
38
|
+
uid: '_id'
|
39
|
+
)
|
40
|
+
fb = Factbase::Pre.new(fb) do |f|
|
41
|
+
max = $fb.query('(eq _id (max _id))').each.to_a.first
|
42
|
+
f._id = (max.nil? ? 0 : max._id) + 1
|
43
|
+
f._time = Time.now
|
44
|
+
f._version = "#{Factbase::VERSION}/#{Judges::VERSION}/#{$options.judges_action_version}"
|
45
|
+
end
|
46
|
+
Factbase::Looged.new(fb, Loog::NULL)
|
44
47
|
end
|
45
|
-
Factbase::Looged.new(fb, Loog::NULL)
|
46
48
|
end
|
data/lib/fbe/iterate.rb
CHANGED
@@ -78,7 +78,10 @@ class Fbe::Iterate
|
|
78
78
|
loop do
|
79
79
|
repos.each do |repo|
|
80
80
|
seen[repo] = 0 if seen[repo].nil?
|
81
|
-
|
81
|
+
if seen[repo] > @limit
|
82
|
+
@loog.debug("We've seen too many in the #{repo} repo, time to move to the next one")
|
83
|
+
next
|
84
|
+
end
|
82
85
|
rid = oct.repo_id_by_name(repo)
|
83
86
|
before = Fbe.fb.query(
|
84
87
|
"(agg (and (eq what '#{@label}') (eq where 'github') (eq repository #{rid})) (first latest))"
|
@@ -86,21 +89,42 @@ class Fbe::Iterate
|
|
86
89
|
Fbe.fb.query("(and (eq what '#{@label}') (eq where 'github') (eq repository #{rid}))").delete!
|
87
90
|
before = before.nil? ? @since : before[0]
|
88
91
|
nxt = Fbe.fb.query(@query).one(before:, repository: rid)
|
89
|
-
after =
|
92
|
+
after =
|
93
|
+
if nxt.nil?
|
94
|
+
@loog.debug("Next is nil, starting from the beginning at #{@since}")
|
95
|
+
@since
|
96
|
+
else
|
97
|
+
@loog.debug("Next is #{nxt}, starting from it...")
|
98
|
+
yield(rid, nxt)
|
99
|
+
end
|
90
100
|
raise "Iterator must return an Integer, while #{after.class} returned" unless after.is_a?(Integer)
|
91
101
|
f = Fbe.fb.insert
|
92
102
|
f.where = 'github'
|
93
103
|
f.repository = rid
|
94
|
-
f.latest =
|
104
|
+
f.latest =
|
105
|
+
if after.nil?
|
106
|
+
@loog.debug("After is nil, setting the `latest` to nxt: #{nxt}")
|
107
|
+
nxt
|
108
|
+
else
|
109
|
+
@loog.debug("After is #{after}, setting the `latest` to it")
|
110
|
+
after
|
111
|
+
end
|
95
112
|
f.what = @label
|
96
113
|
seen[repo] += 1
|
97
|
-
|
114
|
+
if oct.off_quota
|
115
|
+
@loog.debug('We are off GitHub quota, time to stop')
|
116
|
+
break
|
117
|
+
end
|
118
|
+
end
|
119
|
+
if oct.off_quota
|
120
|
+
@loog.debug('We are off GitHub quota, time to stop')
|
121
|
+
break
|
98
122
|
end
|
99
|
-
break if oct.off_quota
|
100
123
|
unless seen.values.any? { |v| v < @limit }
|
101
|
-
@loog.debug(
|
124
|
+
@loog.debug('No more repos to scan, quitting')
|
102
125
|
break
|
103
126
|
end
|
104
127
|
end
|
128
|
+
@loog.debug("Finished scanning #{repos.size} repos: #{seen.map { |k, v| "#{k}:#{v}" }.join(', ')}")
|
105
129
|
end
|
106
130
|
end
|
data/lib/fbe.rb
CHANGED
data/test/fbe/test_conclude.rb
CHANGED
@@ -37,6 +37,7 @@ require_relative '../../lib/fbe/fb'
|
|
37
37
|
class TestConclude < Minitest::Test
|
38
38
|
def test_with_defaults
|
39
39
|
$fb = Factbase.new
|
40
|
+
$global = {}
|
40
41
|
$options = Judges::Options.new
|
41
42
|
$loog = Loog::NULL
|
42
43
|
Fbe.conclude do
|
@@ -63,6 +64,7 @@ class TestConclude < Minitest::Test
|
|
63
64
|
|
64
65
|
def test_maybe
|
65
66
|
$fb = Factbase.new
|
67
|
+
$global = {}
|
66
68
|
$options = Judges::Options.new
|
67
69
|
$loog = Loog::NULL
|
68
70
|
Fbe.fb.insert.foo = 1
|
@@ -84,6 +86,7 @@ class TestConclude < Minitest::Test
|
|
84
86
|
|
85
87
|
def test_consider
|
86
88
|
$fb = Factbase.new
|
89
|
+
$global = {}
|
87
90
|
$options = Judges::Options.new
|
88
91
|
$loog = Loog::NULL
|
89
92
|
Fbe.fb.insert.foo = 1
|
data/test/fbe/test_fb.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fbe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
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-07-
|
11
|
+
date: 2024-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|