fbe 0.3.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6fdb21c2c225165b769240c0846df146b5094b938965015fc6941790dcbae613
4
- data.tar.gz: 50ed59137a99c8483b07f961c9af0e827a9083b14630b58330515ef040717779
3
+ metadata.gz: bcae083c116fe7dba6cf632dd55fdf3a65e3d88b3c32afe4f39dda17e6cfd055
4
+ data.tar.gz: b69a33a628245a01b72cec23b21bb4b4dc3df15ac3f6a49920c7edad11446d80
5
5
  SHA512:
6
- metadata.gz: 1a78ee412199c7499a034bec65b644e83aa1f74aa5ad7167add6c3a3148be1e601f88b1f68fe31f8fe090624c7515dff47356bc9d2acd016599c75d31cb2ae83
7
- data.tar.gz: 279969f1d6dbb90f80be76ba2036e06145081cd7f357cb5eb51a9a774d65e5782e06cc7ae840519cf2760725d42e13f22c4cf54903678ce0fde1bb3f3b67af5a
6
+ metadata.gz: bf2b5de5a2b4ff2916c63c2b4124deb742edd79338d37b7e2b0377bd42c26f80556a3ee0b70e21bcbc711ea76dbf3bb11e52bc885afec27d3627f7c8b91f8099
7
+ data.tar.gz: f29473025b68679a241a4fe594fbe684cfeab25f4bb1b7ab973d181ede994a8d5a54943dc7be751cd53ef126a41ebbc95734c5297b511254554b8eac2fe3e216
data/Gemfile CHANGED
@@ -8,6 +8,7 @@ gemspec
8
8
 
9
9
  gem 'minitest', '~>5.25', require: false
10
10
  gem 'minitest-reporters', '>=1.7', require: false
11
+ gem 'os', '>0', require: false
11
12
  gem 'qbash', '>0', require: false
12
13
  gem 'rake', '>=13', require: false
13
14
  gem 'rubocop', '~>1.75', require: false
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.13)
44
+ baza.rb (0.1.0)
45
45
  backtrace (> 0)
46
46
  elapsed (> 0)
47
47
  faraday (> 0)
@@ -69,7 +69,7 @@ GEM
69
69
  tago (> 0)
70
70
  ethon (0.16.0)
71
71
  ffi (>= 1.15.0)
72
- factbase (0.9.7)
72
+ factbase (0.9.10)
73
73
  backtrace (~> 0.4)
74
74
  decoor (~> 0.0)
75
75
  json (~> 2.7)
@@ -89,7 +89,7 @@ GEM
89
89
  multipart-post (~> 2.0)
90
90
  faraday-net_http (3.4.0)
91
91
  net-http (>= 0.5.0)
92
- faraday-retry (2.2.1)
92
+ faraday-retry (2.3.1)
93
93
  faraday (~> 2.0)
94
94
  ffi (1.17.1-arm64-darwin)
95
95
  ffi (1.17.1-x64-mingw-ucrt)
@@ -98,7 +98,7 @@ GEM
98
98
  fiber-storage (1.0.0)
99
99
  gli (2.22.2)
100
100
  ostruct
101
- graphql (2.4.15)
101
+ graphql (2.5.1)
102
102
  base64
103
103
  fiber-storage
104
104
  logger
@@ -110,12 +110,12 @@ GEM
110
110
  concurrent-ruby (~> 1.0)
111
111
  iri (0.10.0)
112
112
  json (2.10.2)
113
- judges (0.38.1)
113
+ judges (0.39.2)
114
114
  backtrace (~> 0)
115
115
  baza.rb (~> 0)
116
116
  concurrent-ruby (~> 1.2)
117
117
  elapsed (~> 0)
118
- factbase (>= 0.9.1)
118
+ factbase (~> 0.9)
119
119
  gli (~> 2.21)
120
120
  iri (~> 0)
121
121
  loog (~> 0)
@@ -142,22 +142,23 @@ GEM
142
142
  multipart-post (2.4.1)
143
143
  net-http (0.6.0)
144
144
  uri
145
- nokogiri (1.18.6-arm64-darwin)
145
+ nokogiri (1.18.7-arm64-darwin)
146
146
  racc (~> 1.4)
147
- nokogiri (1.18.6-x64-mingw-ucrt)
147
+ nokogiri (1.18.7-x64-mingw-ucrt)
148
148
  racc (~> 1.4)
149
- nokogiri (1.18.6-x86_64-darwin)
149
+ nokogiri (1.18.7-x86_64-darwin)
150
150
  racc (~> 1.4)
151
- nokogiri (1.18.6-x86_64-linux-gnu)
151
+ nokogiri (1.18.7-x86_64-linux-gnu)
152
152
  racc (~> 1.4)
153
- obk (0.3.1)
153
+ obk (0.3.2)
154
154
  octokit (9.2.0)
155
155
  faraday (>= 1, < 3)
156
156
  sawyer (~> 0.9)
157
+ os (1.1.4)
157
158
  ostruct (0.6.1)
158
159
  others (0.0.3)
159
160
  parallel (1.26.3)
160
- parser (3.3.7.3)
161
+ parser (3.3.7.4)
161
162
  ast (~> 2.4.1)
162
163
  racc
163
164
  prism (1.4.0)
@@ -173,7 +174,7 @@ GEM
173
174
  regexp_parser (2.10.0)
174
175
  retries (0.0.5)
175
176
  rexml (3.4.1)
176
- rubocop (1.75.1)
177
+ rubocop (1.75.2)
177
178
  json (~> 2.3)
178
179
  language_server-protocol (~> 3.17.0.2)
179
180
  lint_roller (~> 1.1.0)
@@ -181,19 +182,19 @@ GEM
181
182
  parser (>= 3.3.0.2)
182
183
  rainbow (>= 2.2.2, < 4.0)
183
184
  regexp_parser (>= 2.9.3, < 3.0)
184
- rubocop-ast (>= 1.43.0, < 2.0)
185
+ rubocop-ast (>= 1.44.0, < 2.0)
185
186
  ruby-progressbar (~> 1.7)
186
187
  unicode-display_width (>= 2.4.0, < 4.0)
187
- rubocop-ast (1.43.0)
188
+ rubocop-ast (1.44.0)
188
189
  parser (>= 3.3.7.2)
189
190
  prism (~> 1.4)
190
- rubocop-minitest (0.37.1)
191
+ rubocop-minitest (0.38.0)
191
192
  lint_roller (~> 1.1)
192
- rubocop (>= 1.72.1, < 2.0)
193
+ rubocop (>= 1.75.0, < 2.0)
193
194
  rubocop-ast (>= 1.38.0, < 2.0)
194
- rubocop-performance (1.24.0)
195
+ rubocop-performance (1.25.0)
195
196
  lint_roller (~> 1.1)
196
- rubocop (>= 1.72.1, < 2.0)
197
+ rubocop (>= 1.75.0, < 2.0)
197
198
  rubocop-ast (>= 1.38.0, < 2.0)
198
199
  rubocop-rake (0.7.1)
199
200
  lint_roller (~> 1.1)
@@ -249,6 +250,7 @@ DEPENDENCIES
249
250
  fbe!
250
251
  minitest (~> 5.25)
251
252
  minitest-reporters (>= 1.7)
253
+ os (> 0)
252
254
  qbash (> 0)
253
255
  rake (>= 13)
254
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.rb CHANGED
@@ -10,5 +10,5 @@
10
10
  # License:: MIT
11
11
  module Fbe
12
12
  # Current version of the gem (changed by +.rultor.yml+ on every release)
13
- VERSION = '0.3.1' unless const_defined?(:VERSION)
13
+ VERSION = '0.4.0' unless const_defined?(:VERSION)
14
14
  end
@@ -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.3.1
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-03-30 00:00:00.000000000 Z
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