fbe 0.3.0 → 0.4.0
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 +1 -0
- data/Gemfile.lock +27 -24
- data/lib/fbe/delete.rb +34 -0
- data/lib/fbe/fb.rb +9 -7
- data/lib/fbe.rb +1 -1
- data/test/fbe/test_delete.rb +37 -0
- 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: bcae083c116fe7dba6cf632dd55fdf3a65e3d88b3c32afe4f39dda17e6cfd055
|
4
|
+
data.tar.gz: b69a33a628245a01b72cec23b21bb4b4dc3df15ac3f6a49920c7edad11446d80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf2b5de5a2b4ff2916c63c2b4124deb742edd79338d37b7e2b0377bd42c26f80556a3ee0b70e21bcbc711ea76dbf3bb11e52bc885afec27d3627f7c8b91f8099
|
7
|
+
data.tar.gz: f29473025b68679a241a4fe594fbe684cfeab25f4bb1b7ab973d181ede994a8d5a54943dc7be751cd53ef126a41ebbc95734c5297b511254554b8eac2fe3e216
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -41,7 +41,7 @@ GEM
|
|
41
41
|
ast (2.4.3)
|
42
42
|
backtrace (0.4.0)
|
43
43
|
base64 (0.2.0)
|
44
|
-
baza.rb (0.0
|
44
|
+
baza.rb (0.1.0)
|
45
45
|
backtrace (> 0)
|
46
46
|
elapsed (> 0)
|
47
47
|
faraday (> 0)
|
@@ -69,14 +69,15 @@ GEM
|
|
69
69
|
tago (> 0)
|
70
70
|
ethon (0.16.0)
|
71
71
|
ffi (>= 1.15.0)
|
72
|
-
factbase (0.9.
|
73
|
-
backtrace (
|
74
|
-
decoor (
|
72
|
+
factbase (0.9.10)
|
73
|
+
backtrace (~> 0.4)
|
74
|
+
decoor (~> 0.0)
|
75
75
|
json (~> 2.7)
|
76
|
-
|
76
|
+
logger (~> 1.0)
|
77
|
+
loog (~> 0.6)
|
77
78
|
nokogiri (~> 1.10)
|
78
|
-
others (
|
79
|
-
tago (
|
79
|
+
others (~> 0.0)
|
80
|
+
tago (~> 0.0)
|
80
81
|
yaml (~> 0.3)
|
81
82
|
faraday (2.12.2)
|
82
83
|
faraday-net_http (>= 2.0, < 3.5)
|
@@ -88,7 +89,7 @@ GEM
|
|
88
89
|
multipart-post (~> 2.0)
|
89
90
|
faraday-net_http (3.4.0)
|
90
91
|
net-http (>= 0.5.0)
|
91
|
-
faraday-retry (2.
|
92
|
+
faraday-retry (2.3.1)
|
92
93
|
faraday (~> 2.0)
|
93
94
|
ffi (1.17.1-arm64-darwin)
|
94
95
|
ffi (1.17.1-x64-mingw-ucrt)
|
@@ -97,7 +98,7 @@ GEM
|
|
97
98
|
fiber-storage (1.0.0)
|
98
99
|
gli (2.22.2)
|
99
100
|
ostruct
|
100
|
-
graphql (2.
|
101
|
+
graphql (2.5.1)
|
101
102
|
base64
|
102
103
|
fiber-storage
|
103
104
|
logger
|
@@ -109,12 +110,12 @@ GEM
|
|
109
110
|
concurrent-ruby (~> 1.0)
|
110
111
|
iri (0.10.0)
|
111
112
|
json (2.10.2)
|
112
|
-
judges (0.
|
113
|
+
judges (0.39.2)
|
113
114
|
backtrace (~> 0)
|
114
115
|
baza.rb (~> 0)
|
115
116
|
concurrent-ruby (~> 1.2)
|
116
117
|
elapsed (~> 0)
|
117
|
-
factbase (
|
118
|
+
factbase (~> 0.9)
|
118
119
|
gli (~> 2.21)
|
119
120
|
iri (~> 0)
|
120
121
|
loog (~> 0)
|
@@ -141,22 +142,23 @@ GEM
|
|
141
142
|
multipart-post (2.4.1)
|
142
143
|
net-http (0.6.0)
|
143
144
|
uri
|
144
|
-
nokogiri (1.18.
|
145
|
+
nokogiri (1.18.7-arm64-darwin)
|
145
146
|
racc (~> 1.4)
|
146
|
-
nokogiri (1.18.
|
147
|
+
nokogiri (1.18.7-x64-mingw-ucrt)
|
147
148
|
racc (~> 1.4)
|
148
|
-
nokogiri (1.18.
|
149
|
+
nokogiri (1.18.7-x86_64-darwin)
|
149
150
|
racc (~> 1.4)
|
150
|
-
nokogiri (1.18.
|
151
|
+
nokogiri (1.18.7-x86_64-linux-gnu)
|
151
152
|
racc (~> 1.4)
|
152
|
-
obk (0.3.
|
153
|
+
obk (0.3.2)
|
153
154
|
octokit (9.2.0)
|
154
155
|
faraday (>= 1, < 3)
|
155
156
|
sawyer (~> 0.9)
|
157
|
+
os (1.1.4)
|
156
158
|
ostruct (0.6.1)
|
157
159
|
others (0.0.3)
|
158
160
|
parallel (1.26.3)
|
159
|
-
parser (3.3.7.
|
161
|
+
parser (3.3.7.4)
|
160
162
|
ast (~> 2.4.1)
|
161
163
|
racc
|
162
164
|
prism (1.4.0)
|
@@ -172,7 +174,7 @@ GEM
|
|
172
174
|
regexp_parser (2.10.0)
|
173
175
|
retries (0.0.5)
|
174
176
|
rexml (3.4.1)
|
175
|
-
rubocop (1.75.
|
177
|
+
rubocop (1.75.2)
|
176
178
|
json (~> 2.3)
|
177
179
|
language_server-protocol (~> 3.17.0.2)
|
178
180
|
lint_roller (~> 1.1.0)
|
@@ -180,19 +182,19 @@ GEM
|
|
180
182
|
parser (>= 3.3.0.2)
|
181
183
|
rainbow (>= 2.2.2, < 4.0)
|
182
184
|
regexp_parser (>= 2.9.3, < 3.0)
|
183
|
-
rubocop-ast (>= 1.
|
185
|
+
rubocop-ast (>= 1.44.0, < 2.0)
|
184
186
|
ruby-progressbar (~> 1.7)
|
185
187
|
unicode-display_width (>= 2.4.0, < 4.0)
|
186
|
-
rubocop-ast (1.
|
188
|
+
rubocop-ast (1.44.0)
|
187
189
|
parser (>= 3.3.7.2)
|
188
190
|
prism (~> 1.4)
|
189
|
-
rubocop-minitest (0.
|
191
|
+
rubocop-minitest (0.38.0)
|
190
192
|
lint_roller (~> 1.1)
|
191
|
-
rubocop (>= 1.
|
193
|
+
rubocop (>= 1.75.0, < 2.0)
|
192
194
|
rubocop-ast (>= 1.38.0, < 2.0)
|
193
|
-
rubocop-performance (1.
|
195
|
+
rubocop-performance (1.25.0)
|
194
196
|
lint_roller (~> 1.1)
|
195
|
-
rubocop (>= 1.
|
197
|
+
rubocop (>= 1.75.0, < 2.0)
|
196
198
|
rubocop-ast (>= 1.38.0, < 2.0)
|
197
199
|
rubocop-rake (0.7.1)
|
198
200
|
lint_roller (~> 1.1)
|
@@ -248,6 +250,7 @@ DEPENDENCIES
|
|
248
250
|
fbe!
|
249
251
|
minitest (~> 5.25)
|
250
252
|
minitest-reporters (>= 1.7)
|
253
|
+
os (> 0)
|
251
254
|
qbash (> 0)
|
252
255
|
rake (>= 13)
|
253
256
|
rubocop (~> 1.75)
|
data/lib/fbe/delete.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024-2025 Zerocracy
|
4
|
+
# SPDX-License-Identifier: MIT
|
5
|
+
|
6
|
+
require_relative '../fbe'
|
7
|
+
require_relative 'fb'
|
8
|
+
|
9
|
+
# Delete a few properties from the fact.
|
10
|
+
#
|
11
|
+
# @param [Factbase::Fact] source The source
|
12
|
+
# @param [Array<String>] props List of properties to delete
|
13
|
+
# @param [Factbase] fb The factbase
|
14
|
+
# @param [String] id The unique ID of the fact
|
15
|
+
# @return [Factbase::Fact] New fact
|
16
|
+
def Fbe.delete(fact, *props, fb: Fbe.fb, id: '_id')
|
17
|
+
raise 'The fact is nil' if fact.nil?
|
18
|
+
i = fact[id]
|
19
|
+
raise "There is no #{id.inspect} in the fact" if i.nil?
|
20
|
+
i = i.first
|
21
|
+
before = {}
|
22
|
+
fact.all_properties.each do |k|
|
23
|
+
next if props.include?(k)
|
24
|
+
fact[k].each do |v|
|
25
|
+
before[k] = v
|
26
|
+
end
|
27
|
+
end
|
28
|
+
fb.query("(eq #{id} #{i})").delete!
|
29
|
+
c = fb.insert
|
30
|
+
before.each do |k, v|
|
31
|
+
c.send(:"#{k}=", v)
|
32
|
+
end
|
33
|
+
c
|
34
|
+
end
|
data/lib/fbe/fb.rb
CHANGED
@@ -28,10 +28,9 @@ require_relative '../fbe'
|
|
28
28
|
def Fbe.fb(fb: $fb, global: $global, options: $options, loog: $loog)
|
29
29
|
global[:fb] ||=
|
30
30
|
begin
|
31
|
-
fbe = Factbase::Logged.new(fb, loog)
|
32
31
|
rules = Dir.glob(File.join('rules', '*.fe')).map { |f| File.read(f) }
|
33
32
|
fbe = Factbase::Rules.new(
|
34
|
-
|
33
|
+
fb,
|
35
34
|
"(and \n#{rules.join("\n")}\n)",
|
36
35
|
uid: '_id'
|
37
36
|
)
|
@@ -43,12 +42,15 @@ def Fbe.fb(fb: $fb, global: $global, options: $options, loog: $loog)
|
|
43
42
|
f._version = "#{Factbase::VERSION}/#{Judges::VERSION}/#{options.action_version}"
|
44
43
|
f._job = options.job_id unless options.job_id.nil?
|
45
44
|
end
|
46
|
-
Factbase::
|
47
|
-
Factbase::
|
48
|
-
Factbase::
|
49
|
-
|
45
|
+
Factbase::Logged.new(
|
46
|
+
Factbase::SyncFactbase.new(
|
47
|
+
Factbase::IndexedFactbase.new(
|
48
|
+
Factbase::CachedFactbase.new(
|
49
|
+
fbe
|
50
|
+
)
|
50
51
|
)
|
51
|
-
)
|
52
|
+
),
|
53
|
+
loog
|
52
54
|
)
|
53
55
|
end
|
54
56
|
end
|
data/lib/fbe.rb
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024-2025 Zerocracy
|
4
|
+
# SPDX-License-Identifier: MIT
|
5
|
+
|
6
|
+
require 'factbase'
|
7
|
+
require_relative '../test__helper'
|
8
|
+
require_relative '../../lib/fbe/delete'
|
9
|
+
|
10
|
+
# Test.
|
11
|
+
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
12
|
+
# Copyright:: Copyright (c) 2024-2025 Zerocracy
|
13
|
+
# License:: MIT
|
14
|
+
class TestDelete < Minitest::Test
|
15
|
+
def test_deletes_one_property
|
16
|
+
fb = Factbase.new
|
17
|
+
f = fb.insert
|
18
|
+
f.foo = 42
|
19
|
+
f.hey = 4
|
20
|
+
f._id = 555
|
21
|
+
Fbe.delete(f, 'foo', 'bar', fb:)
|
22
|
+
assert_equal(1, fb.size)
|
23
|
+
assert_equal(1, fb.query('(exists hey)').each.to_a.size)
|
24
|
+
assert_equal(4, fb.query('(exists hey)').each.first.hey)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_deletes_two_properties
|
28
|
+
fb = Factbase.new
|
29
|
+
f = fb.insert
|
30
|
+
f.foo = 42
|
31
|
+
f.hey = 4
|
32
|
+
f._id = 555
|
33
|
+
Fbe.delete(f, 'foo', 'hey', fb:)
|
34
|
+
assert_equal(1, fb.size)
|
35
|
+
assert_equal(0, fb.query('(exists hey)').each.to_a.size)
|
36
|
+
end
|
37
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fbe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-04-06 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: backtrace
|
@@ -281,6 +281,7 @@ files:
|
|
281
281
|
- lib/fbe/bylaws.rb
|
282
282
|
- lib/fbe/conclude.rb
|
283
283
|
- lib/fbe/copy.rb
|
284
|
+
- lib/fbe/delete.rb
|
284
285
|
- lib/fbe/enter.rb
|
285
286
|
- lib/fbe/fb.rb
|
286
287
|
- lib/fbe/github_graph.rb
|
@@ -307,6 +308,7 @@ files:
|
|
307
308
|
- test/fbe/test_bylaws.rb
|
308
309
|
- test/fbe/test_conclude.rb
|
309
310
|
- test/fbe/test_copy.rb
|
311
|
+
- test/fbe/test_delete.rb
|
310
312
|
- test/fbe/test_enter.rb
|
311
313
|
- test/fbe/test_fb.rb
|
312
314
|
- test/fbe/test_github_graph.rb
|