fbe 0.48.5 → 0.48.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/.github/workflows/actionlint.yml +1 -7
- data/.github/workflows/codecov.yml +2 -2
- data/.github/workflows/markdown-lint.yml +1 -1
- data/.github/workflows/rake.yml +1 -2
- data/.github/workflows/typos.yml +1 -1
- data/.gitignore +2 -0
- data/.rubocop.yml +18 -2
- data/.ruby-version +1 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +31 -31
- data/README.md +1 -1
- data/REUSE.toml +1 -0
- data/fbe.gemspec +1 -1
- data/lib/fbe/award.rb +1 -1
- data/lib/fbe/conclude.rb +16 -2
- data/lib/fbe/consider.rb +5 -1
- data/lib/fbe/delete.rb +7 -1
- data/lib/fbe/delete_one.rb +11 -2
- data/lib/fbe/fake_octokit.rb +1797 -0
- data/lib/fbe/fb.rb +31 -28
- data/lib/fbe/github_graph.rb +15 -8
- data/lib/fbe/if_absent.rb +1 -1
- data/lib/fbe/iterate.rb +27 -14
- data/lib/fbe/just_one.rb +5 -2
- data/lib/fbe/kill_if.rb +1 -0
- data/lib/fbe/middleware/formatter.rb +12 -11
- data/lib/fbe/middleware/rate_limit.rb +96 -48
- data/lib/fbe/middleware/sqlite_store.rb +12 -4
- data/lib/fbe/octo.rb +187 -1944
- data/lib/fbe/over.rb +7 -3
- data/lib/fbe/overwrite.rb +31 -2
- data/lib/fbe/pmp.rb +56 -34
- data/lib/fbe/regularly.rb +2 -2
- data/lib/fbe/repeatedly.rb +2 -2
- data/lib/fbe/sec.rb +4 -5
- data/lib/fbe/tombstone.rb +1 -1
- data/lib/fbe/unmask_repos.rb +1 -2
- data/lib/fbe.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cc71748bcfb59be79127dfc1373ee3dfe84e14e9843583322d89f95bef91969f
|
|
4
|
+
data.tar.gz: 26450c3e7d5e30e7e745464ef6b478fe99dbef34484401d6ca6fffabeb1bc5f0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 979762592673b5f9ea6136185c339a5be403e164d5f7d614fdd2d2bdec646e69f274325fc2991b5085bbc3e7017329a5e3be96925dc7d2d65efe64b0813428e7
|
|
7
|
+
data.tar.gz: d8103526278d4b6c6e1c84b34ef358d310b02add12c5ee001223568dd65626c122ba1440074dcc8a043922ff19fd8458747119c41cb699c0229b33bf780e0c59
|
|
@@ -16,10 +16,4 @@ jobs:
|
|
|
16
16
|
runs-on: ubuntu-24.04
|
|
17
17
|
steps:
|
|
18
18
|
- uses: actions/checkout@v6
|
|
19
|
-
-
|
|
20
|
-
id: get_actionlint
|
|
21
|
-
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
|
|
22
|
-
shell: bash
|
|
23
|
-
- name: Check workflow files
|
|
24
|
-
run: ${{ steps.get_actionlint.outputs.executable }} -color
|
|
25
|
-
shell: bash
|
|
19
|
+
- uses: reviewdog/action-actionlint@v1.72.0
|
|
@@ -15,11 +15,11 @@ jobs:
|
|
|
15
15
|
- uses: actions/checkout@v6
|
|
16
16
|
- uses: ruby/setup-ruby@v1
|
|
17
17
|
with:
|
|
18
|
-
ruby-version:
|
|
18
|
+
ruby-version: .ruby-version
|
|
19
19
|
bundler-cache: true
|
|
20
20
|
- run: bundle config set --global path "$(pwd)/vendor/bundle"
|
|
21
21
|
- run: bundle install --no-color
|
|
22
22
|
- run: bundle exec rake
|
|
23
|
-
- uses: codecov/codecov-action@
|
|
23
|
+
- uses: codecov/codecov-action@v7
|
|
24
24
|
with:
|
|
25
25
|
token: ${{ secrets.CODECOV_TOKEN }}
|
data/.github/workflows/rake.yml
CHANGED
|
@@ -15,13 +15,12 @@ jobs:
|
|
|
15
15
|
strategy:
|
|
16
16
|
matrix:
|
|
17
17
|
os: [ubuntu-24.04, macos-15]
|
|
18
|
-
ruby: [3.3]
|
|
19
18
|
runs-on: ${{ matrix.os }}
|
|
20
19
|
steps:
|
|
21
20
|
- uses: actions/checkout@v6
|
|
22
21
|
- uses: ruby/setup-ruby@v1
|
|
23
22
|
with:
|
|
24
|
-
ruby-version:
|
|
23
|
+
ruby-version: .ruby-version
|
|
25
24
|
bundler-cache: true
|
|
26
25
|
- run: bundle config set --global path "$(pwd)/vendor/bundle"
|
|
27
26
|
- run: bundle install --no-color
|
data/.github/workflows/typos.yml
CHANGED
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -7,7 +7,7 @@ AllCops:
|
|
|
7
7
|
- 'assets/**/*'
|
|
8
8
|
- 'vendor/**/**'
|
|
9
9
|
DisplayCopNames: true
|
|
10
|
-
TargetRubyVersion: 3.
|
|
10
|
+
TargetRubyVersion: 3.3
|
|
11
11
|
SuggestExtensions: false
|
|
12
12
|
NewCops: enable
|
|
13
13
|
plugins:
|
|
@@ -19,7 +19,22 @@ Style/GlobalVars:
|
|
|
19
19
|
Enabled: false
|
|
20
20
|
Style/TopLevelMethodDefinition:
|
|
21
21
|
Enabled: false
|
|
22
|
+
Elegant/NoRedundantVariable:
|
|
23
|
+
Enabled: false
|
|
24
|
+
Elegant/NoNilReturn:
|
|
25
|
+
Enabled: false
|
|
26
|
+
Elegant/IndentationLadder:
|
|
27
|
+
Enabled: false
|
|
28
|
+
Elegant/NoClassInModule:
|
|
29
|
+
Exclude:
|
|
30
|
+
- 'lib/fbe.rb'
|
|
31
|
+
Elegant/ClassInModule:
|
|
32
|
+
Exclude:
|
|
33
|
+
- 'lib/**/*'
|
|
34
|
+
- 'test/**/*'
|
|
22
35
|
Elegant/GoodMethodName:
|
|
36
|
+
Exclude:
|
|
37
|
+
- 'test/**/*'
|
|
23
38
|
AllowedNames:
|
|
24
39
|
- accept_repository_invitation
|
|
25
40
|
- add_comment
|
|
@@ -34,6 +49,7 @@ Elegant/GoodMethodName:
|
|
|
34
49
|
- delete_one
|
|
35
50
|
- dump_headers
|
|
36
51
|
- extract_remaining_count
|
|
52
|
+
- extract_search_remaining_count
|
|
37
53
|
- faraday_value
|
|
38
54
|
- github_graph
|
|
39
55
|
- handle_rate_limit_request
|
|
@@ -53,6 +69,7 @@ Elegant/GoodMethodName:
|
|
|
53
69
|
- off_quota?
|
|
54
70
|
- organization_memberships
|
|
55
71
|
- organization_repositories
|
|
72
|
+
- patched_body
|
|
56
73
|
- print_trace!
|
|
57
74
|
- publish_to
|
|
58
75
|
- pull_request
|
|
@@ -85,7 +102,6 @@ Elegant/GoodMethodName:
|
|
|
85
102
|
- track_request
|
|
86
103
|
- unmask_repos
|
|
87
104
|
- update_organization_membership
|
|
88
|
-
- update_remaining_count
|
|
89
105
|
- user_name_by_id
|
|
90
106
|
- user_repository_invitations
|
|
91
107
|
- with_disable_auto_paginate
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.0.5
|
data/Gemfile
CHANGED
|
@@ -13,7 +13,7 @@ gem 'minitest-stub-const', '~>0.6', require: false
|
|
|
13
13
|
gem 'os', '~>1.1', require: false
|
|
14
14
|
gem 'qbash', '~>0.4', require: false
|
|
15
15
|
gem 'rake', '13.4.2', require: false
|
|
16
|
-
gem 'rdoc', '~>
|
|
16
|
+
gem 'rdoc', '~>8.0', require: false
|
|
17
17
|
gem 'rubocop', '~>1.75', require: false
|
|
18
18
|
gem 'rubocop-elegant', '~>0.0', require: false
|
|
19
19
|
gem 'rubocop-minitest', '~>0.38', require: false
|
data/Gemfile.lock
CHANGED
|
@@ -48,7 +48,7 @@ GEM
|
|
|
48
48
|
ast (2.4.3)
|
|
49
49
|
backtrace (0.4.1)
|
|
50
50
|
base64 (0.3.0)
|
|
51
|
-
baza.rb (0.14.
|
|
51
|
+
baza.rb (0.14.4)
|
|
52
52
|
backtrace (~> 0.4)
|
|
53
53
|
elapsed (~> 0.2)
|
|
54
54
|
faraday (~> 2.13)
|
|
@@ -60,14 +60,13 @@ GEM
|
|
|
60
60
|
retries (~> 0.0)
|
|
61
61
|
tago (~> 0.2)
|
|
62
62
|
typhoeus (~> 1.4)
|
|
63
|
-
bigdecimal (4.1.
|
|
63
|
+
bigdecimal (4.1.2)
|
|
64
64
|
builder (3.3.0)
|
|
65
65
|
concurrent-ruby (1.3.6)
|
|
66
66
|
connection_pool (3.0.2)
|
|
67
67
|
crack (1.0.1)
|
|
68
68
|
bigdecimal
|
|
69
69
|
rexml
|
|
70
|
-
date (3.5.1)
|
|
71
70
|
decoor (0.1.0)
|
|
72
71
|
docile (1.4.1)
|
|
73
72
|
drb (2.2.3)
|
|
@@ -75,11 +74,11 @@ GEM
|
|
|
75
74
|
loog (~> 0.6)
|
|
76
75
|
tago (~> 0.1)
|
|
77
76
|
ellipsized (0.3.0)
|
|
78
|
-
erb (6.0.
|
|
77
|
+
erb (6.0.4)
|
|
79
78
|
ethon (0.18.0)
|
|
80
79
|
ffi (>= 1.15.0)
|
|
81
80
|
logger
|
|
82
|
-
factbase (0.19.
|
|
81
|
+
factbase (0.19.11)
|
|
83
82
|
backtrace (~> 0.4)
|
|
84
83
|
decoor (~> 0.1)
|
|
85
84
|
ellipsized (~> 0.3)
|
|
@@ -90,7 +89,7 @@ GEM
|
|
|
90
89
|
others (~> 0.1)
|
|
91
90
|
tago (~> 0.1)
|
|
92
91
|
yaml (~> 0.3)
|
|
93
|
-
faraday (2.14.
|
|
92
|
+
faraday (2.14.2)
|
|
94
93
|
faraday-net_http (>= 2.0, < 3.5)
|
|
95
94
|
json
|
|
96
95
|
logger
|
|
@@ -98,7 +97,7 @@ GEM
|
|
|
98
97
|
faraday (>= 0.8)
|
|
99
98
|
faraday-multipart (1.2.0)
|
|
100
99
|
multipart-post (~> 2.0)
|
|
101
|
-
faraday-net_http (3.4.
|
|
100
|
+
faraday-net_http (3.4.3)
|
|
102
101
|
net-http (~> 0.5)
|
|
103
102
|
faraday-retry (2.4.0)
|
|
104
103
|
faraday (~> 2.0)
|
|
@@ -110,7 +109,7 @@ GEM
|
|
|
110
109
|
filesize (0.2.0)
|
|
111
110
|
gli (2.22.2)
|
|
112
111
|
ostruct
|
|
113
|
-
graphql (2.
|
|
112
|
+
graphql (2.6.3)
|
|
114
113
|
base64
|
|
115
114
|
fiber-storage
|
|
116
115
|
logger
|
|
@@ -123,8 +122,8 @@ GEM
|
|
|
123
122
|
intercepted (0.2.0)
|
|
124
123
|
iri (0.11.8)
|
|
125
124
|
joined (0.4.0)
|
|
126
|
-
json (2.
|
|
127
|
-
judges (0.60.
|
|
125
|
+
json (2.20.0)
|
|
126
|
+
judges (0.60.3)
|
|
128
127
|
backtrace (~> 0.4)
|
|
129
128
|
baza.rb (~> 0.10)
|
|
130
129
|
concurrent-ruby (~> 1.2)
|
|
@@ -166,13 +165,13 @@ GEM
|
|
|
166
165
|
multipart-post (2.4.1)
|
|
167
166
|
net-http (0.9.1)
|
|
168
167
|
uri (>= 0.11.1)
|
|
169
|
-
nokogiri (1.19.
|
|
168
|
+
nokogiri (1.19.3-arm64-darwin)
|
|
170
169
|
racc (~> 1.4)
|
|
171
|
-
nokogiri (1.19.
|
|
170
|
+
nokogiri (1.19.3-x64-mingw-ucrt)
|
|
172
171
|
racc (~> 1.4)
|
|
173
|
-
nokogiri (1.19.
|
|
172
|
+
nokogiri (1.19.3-x86_64-darwin)
|
|
174
173
|
racc (~> 1.4)
|
|
175
|
-
nokogiri (1.19.
|
|
174
|
+
nokogiri (1.19.3-x86_64-linux-gnu)
|
|
176
175
|
racc (~> 1.4)
|
|
177
176
|
obk (0.3.2)
|
|
178
177
|
octokit (10.0.0)
|
|
@@ -181,16 +180,13 @@ GEM
|
|
|
181
180
|
os (1.1.4)
|
|
182
181
|
ostruct (0.6.3)
|
|
183
182
|
others (0.1.1)
|
|
184
|
-
parallel (2.0
|
|
183
|
+
parallel (2.1.0)
|
|
185
184
|
parser (3.3.11.1)
|
|
186
185
|
ast (~> 2.4.1)
|
|
187
186
|
racc
|
|
188
187
|
prism (1.9.0)
|
|
189
|
-
psych (5.3.1)
|
|
190
|
-
date
|
|
191
|
-
stringio
|
|
192
188
|
public_suffix (7.0.5)
|
|
193
|
-
qbash (0.8.
|
|
189
|
+
qbash (0.8.4)
|
|
194
190
|
backtrace (> 0)
|
|
195
191
|
elapsed (> 0)
|
|
196
192
|
loog (> 0)
|
|
@@ -198,14 +194,19 @@ GEM
|
|
|
198
194
|
racc (1.8.1)
|
|
199
195
|
rainbow (3.1.1)
|
|
200
196
|
rake (13.4.2)
|
|
201
|
-
|
|
197
|
+
rbs (4.0.3)
|
|
198
|
+
logger
|
|
199
|
+
prism (>= 1.6.0)
|
|
200
|
+
tsort
|
|
201
|
+
rdoc (8.0.0)
|
|
202
202
|
erb
|
|
203
|
-
|
|
203
|
+
prism (>= 1.6.0)
|
|
204
|
+
rbs (>= 4.0.0)
|
|
204
205
|
tsort
|
|
205
206
|
regexp_parser (2.12.0)
|
|
206
207
|
retries (0.0.5)
|
|
207
208
|
rexml (3.4.4)
|
|
208
|
-
rubocop (1.
|
|
209
|
+
rubocop (1.88.1)
|
|
209
210
|
json (~> 2.3)
|
|
210
211
|
language_server-protocol (~> 3.17.0.2)
|
|
211
212
|
lint_roller (~> 1.1.0)
|
|
@@ -219,7 +220,7 @@ GEM
|
|
|
219
220
|
rubocop-ast (1.49.1)
|
|
220
221
|
parser (>= 3.3.7.2)
|
|
221
222
|
prism (~> 1.7)
|
|
222
|
-
rubocop-elegant (0.
|
|
223
|
+
rubocop-elegant (0.5.1)
|
|
223
224
|
lint_roller (~> 1.1)
|
|
224
225
|
rubocop (~> 1.75)
|
|
225
226
|
rubocop-minitest (0.39.1)
|
|
@@ -242,16 +243,15 @@ GEM
|
|
|
242
243
|
docile (~> 1.1)
|
|
243
244
|
simplecov-html (~> 0.11)
|
|
244
245
|
simplecov_json_formatter (~> 0.1)
|
|
245
|
-
simplecov-cobertura (3.
|
|
246
|
+
simplecov-cobertura (3.2.0)
|
|
246
247
|
rexml
|
|
247
248
|
simplecov (~> 0.19)
|
|
248
249
|
simplecov-html (0.13.2)
|
|
249
250
|
simplecov_json_formatter (0.1.4)
|
|
250
|
-
sqlite3 (2.9.
|
|
251
|
-
sqlite3 (2.9.
|
|
252
|
-
sqlite3 (2.9.
|
|
253
|
-
sqlite3 (2.9.
|
|
254
|
-
stringio (3.2.0)
|
|
251
|
+
sqlite3 (2.9.4-arm64-darwin)
|
|
252
|
+
sqlite3 (2.9.4-x64-mingw-ucrt)
|
|
253
|
+
sqlite3 (2.9.4-x86_64-darwin)
|
|
254
|
+
sqlite3 (2.9.4-x86_64-linux-gnu)
|
|
255
255
|
strscan (3.1.8)
|
|
256
256
|
tago (0.7.0)
|
|
257
257
|
timeout (0.6.1)
|
|
@@ -274,7 +274,7 @@ GEM
|
|
|
274
274
|
crack (>= 0.3.2)
|
|
275
275
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
276
276
|
yaml (0.4.0)
|
|
277
|
-
yard (0.9.
|
|
277
|
+
yard (0.9.44)
|
|
278
278
|
|
|
279
279
|
PLATFORMS
|
|
280
280
|
arm64-darwin-22
|
|
@@ -295,7 +295,7 @@ DEPENDENCIES
|
|
|
295
295
|
os (~> 1.1)
|
|
296
296
|
qbash (~> 0.4)
|
|
297
297
|
rake (= 13.4.2)
|
|
298
|
-
rdoc (~>
|
|
298
|
+
rdoc (~> 8.0)
|
|
299
299
|
rubocop (~> 1.75)
|
|
300
300
|
rubocop-elegant (~> 0.0)
|
|
301
301
|
rubocop-minitest (~> 0.38)
|
data/README.md
CHANGED
|
@@ -52,7 +52,7 @@ Read
|
|
|
52
52
|
[these guidelines](https://www.yegor256.com/2014/04/15/github-guidelines.html).
|
|
53
53
|
Make sure your build is green before you contribute
|
|
54
54
|
your pull request. You will need to have
|
|
55
|
-
[Ruby](https://www.ruby-lang.org/en/) 3.
|
|
55
|
+
[Ruby](https://www.ruby-lang.org/en/) 3.3+ and
|
|
56
56
|
[Bundler](https://bundler.io/) installed. Then:
|
|
57
57
|
|
|
58
58
|
```bash
|
data/REUSE.toml
CHANGED
data/fbe.gemspec
CHANGED
|
@@ -8,7 +8,7 @@ require_relative 'lib/fbe'
|
|
|
8
8
|
|
|
9
9
|
Gem::Specification.new do |s|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to?(:required_rubygems_version=)
|
|
11
|
-
s.required_ruby_version = '>=3.
|
|
11
|
+
s.required_ruby_version = '>=3.3'
|
|
12
12
|
s.name = 'fbe'
|
|
13
13
|
s.version = Fbe::VERSION
|
|
14
14
|
s.license = 'MIT'
|
data/lib/fbe/award.rb
CHANGED
|
@@ -253,7 +253,7 @@ class Fbe::Award
|
|
|
253
253
|
when :min
|
|
254
254
|
"minimum of #{to_p(@operands[0])} and #{to_p(@operands[1])}"
|
|
255
255
|
when :between
|
|
256
|
-
"
|
|
256
|
+
"#{to_p(@operands[0])} clamped between #{to_p(@operands[1])} and #{to_p(@operands[2])}"
|
|
257
257
|
else
|
|
258
258
|
raise(Fbe::Error, "Unknown term '#{@op}'")
|
|
259
259
|
end
|
data/lib/fbe/conclude.rb
CHANGED
|
@@ -123,6 +123,7 @@ class Fbe::Conclude
|
|
|
123
123
|
# @param [Array<String>] props List of property names
|
|
124
124
|
# @return [nil] Nothing
|
|
125
125
|
def follow(props)
|
|
126
|
+
raise(Fbe::Error, 'Follow is already set') unless @follows.empty?
|
|
126
127
|
@follows = props.strip.split.compact
|
|
127
128
|
end
|
|
128
129
|
|
|
@@ -230,6 +231,13 @@ class Fbe::Conclude
|
|
|
230
231
|
# calls the provided block for custom processing, and sets metadata
|
|
231
232
|
# on the new fact.
|
|
232
233
|
#
|
|
234
|
+
# A property that is absent on the previous fact is skipped (its "[]"
|
|
235
|
+
# accessor returns nil). Factbase's "(as new old)" rewrite is only visible
|
|
236
|
+
# through method access (prev.new), while "[]" returns the raw stored value
|
|
237
|
+
# (see #595); when such a rewrite is in effect the method accessor returns
|
|
238
|
+
# the rewritten value, so we honor it. All values are still copied for
|
|
239
|
+
# genuinely multi-valued properties (see #520).
|
|
240
|
+
#
|
|
233
241
|
# @param [Factbase::Fact] fact The fact to populate
|
|
234
242
|
# @param [Factbase::Fact] prev The previous fact to copy from
|
|
235
243
|
# @yield [Factbase::Fact, Factbase::Fact] New fact and the previous fact
|
|
@@ -247,8 +255,14 @@ class Fbe::Conclude
|
|
|
247
255
|
# end
|
|
248
256
|
def fill(fact, prev)
|
|
249
257
|
@follows.each do |follow|
|
|
250
|
-
|
|
251
|
-
|
|
258
|
+
key = follow.to_s
|
|
259
|
+
values = prev[key]
|
|
260
|
+
next if values.nil?
|
|
261
|
+
rewritten = prev.public_send(follow)
|
|
262
|
+
values = [rewritten] unless values.first == rewritten
|
|
263
|
+
values.each do |v|
|
|
264
|
+
fact.public_send(:"#{follow}=", v)
|
|
265
|
+
end
|
|
252
266
|
end
|
|
253
267
|
r = yield(fact, prev)
|
|
254
268
|
return unless r.is_a?(String)
|
data/lib/fbe/consider.rb
CHANGED
|
@@ -17,17 +17,21 @@ require_relative 'fb'
|
|
|
17
17
|
# @param [Loog] loog The logging facility
|
|
18
18
|
# @param [Time] epoch When the entire update started
|
|
19
19
|
# @param [Time] kickoff When the particular judge started
|
|
20
|
+
# @param [Boolean] lifetime_aware Check lifetime limitations (default: true)
|
|
21
|
+
# @param [Boolean] timeout_aware Check timeout limitations (default: true)
|
|
22
|
+
# @param [Boolean] quota_aware Check GitHub API quota (default: true)
|
|
20
23
|
# @yield [Factbase::Fact] The fact
|
|
21
24
|
def Fbe.consider(
|
|
22
25
|
query,
|
|
23
26
|
fb: Fbe.fb, judge: $judge, loog: $loog, options: $options, global: $global,
|
|
24
27
|
epoch: $epoch || Time.now, kickoff: $kickoff || Time.now,
|
|
25
|
-
lifetime_aware: true, timeout_aware: true, &
|
|
28
|
+
lifetime_aware: true, timeout_aware: true, quota_aware: true, &
|
|
26
29
|
)
|
|
27
30
|
Fbe.conclude(fb:, judge:, loog:, options:, global:, epoch:, kickoff:) do
|
|
28
31
|
on(query)
|
|
29
32
|
timeout_unaware unless timeout_aware
|
|
30
33
|
lifetime_unaware unless lifetime_aware
|
|
34
|
+
quota_unaware unless quota_aware
|
|
31
35
|
consider(&)
|
|
32
36
|
end
|
|
33
37
|
end
|
data/lib/fbe/delete.rb
CHANGED
|
@@ -33,10 +33,16 @@ def Fbe.delete(fact, *props, fb: Fbe.fb, id: '_id')
|
|
|
33
33
|
next if props.include?(k)
|
|
34
34
|
before[k] = fact[k]
|
|
35
35
|
end
|
|
36
|
-
before.delete(id)
|
|
37
36
|
fb.query("(eq #{id} #{i})").delete!
|
|
38
37
|
fb.txn do |fbt|
|
|
39
38
|
c = fbt.insert
|
|
39
|
+
f = c
|
|
40
|
+
while f.instance_variable_defined?(:@fact) || f.instance_variable_defined?(:@origin)
|
|
41
|
+
iv = f.instance_variable_defined?(:@fact) ? :@fact : :@origin
|
|
42
|
+
f = f.instance_variable_get(iv)
|
|
43
|
+
end
|
|
44
|
+
map = f.instance_variable_get(:@map)
|
|
45
|
+
%w[_id _time _version _job].each { |k| map.delete(k) if before.key?(k) }
|
|
40
46
|
before.each do |k, vv|
|
|
41
47
|
next unless c[k].nil?
|
|
42
48
|
vv.each do |v|
|
data/lib/fbe/delete_one.rb
CHANGED
|
@@ -28,11 +28,20 @@ def Fbe.delete_one(fact, prop, value, fb: Fbe.fb, id: '_id')
|
|
|
28
28
|
before[k] = fact[k]
|
|
29
29
|
end
|
|
30
30
|
return unless before[prop]
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
nv = before[prop] - [value]
|
|
32
|
+
return if nv == before[prop]
|
|
33
|
+
before[prop] = nv
|
|
34
|
+
before.delete(prop) if nv.empty?
|
|
33
35
|
fb.query("(eq #{id} #{i})").delete!
|
|
34
36
|
fb.txn do |fbt|
|
|
35
37
|
c = fbt.insert
|
|
38
|
+
f = c
|
|
39
|
+
while f.instance_variable_defined?(:@fact) || f.instance_variable_defined?(:@origin)
|
|
40
|
+
iv = f.instance_variable_defined?(:@fact) ? :@fact : :@origin
|
|
41
|
+
f = f.instance_variable_get(iv)
|
|
42
|
+
end
|
|
43
|
+
map = f.instance_variable_get(:@map)
|
|
44
|
+
%w[_id _time _version _job].each { |k| map.delete(k) if before.key?(k) }
|
|
36
45
|
before.each do |k, vv|
|
|
37
46
|
next unless c[k].nil?
|
|
38
47
|
vv.each do |v|
|