fbe 0.26.4 → 0.26.6

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: 62bd70b9796023f978e1361f3cda58077a7b76bc482cb50b364ebe84fea1b404
4
- data.tar.gz: aa1fb244aec77b1f8d0b4255dbbafcc61769c7cfe9ccd91ab3a6137c301cdb51
3
+ metadata.gz: cf2399a111418b6530d902e778b061da2f166b0662888b5d9fa00b0d7868a0d9
4
+ data.tar.gz: bff1d535e9a76b6bce3a6c7a9507c829eb427593526f6f52c2eb1f788d0d62a0
5
5
  SHA512:
6
- metadata.gz: 63ae4cba9b18458ecd16f06f7c86ade4322f587bb02aa1fa7ee1eff7872578c74ed852df09bec9d865aba0a437a1f309f05a7c327855de4d59b07fcdc12e918a
7
- data.tar.gz: 65c9500fa79217b84ba8c043d8140f5b30b18c22880ba1809427008cda8c0ecfe59d4906fe3e385c5f7d5687ada1eec04fdde8716ad67a50c3548f02d4583246
6
+ metadata.gz: fa3d845df7b5b5094150c4d8db0e49290304f88cc84739c5038f3de8051236e1ee63661eabda169f757c595ac015814c299b99ec155dd35dc89097b4a8463a1d
7
+ data.tar.gz: 96ef2d27467da682f4339f52a431eb5dc7e2a1e4cfa130c9fc1d9c7dba62cd97095a2cb68ea0d9a41155f57f061113c5698fb1aaa1356af8dc39d159c585fc56
data/lib/fbe/delete.rb CHANGED
@@ -34,10 +34,14 @@ def Fbe.delete(fact, *props, fb: Fbe.fb, id: '_id')
34
34
  before[k] = v
35
35
  end
36
36
  end
37
+ before.delete(id)
37
38
  fb.query("(eq #{id} #{i})").delete!
38
- c = fb.insert
39
- before.each do |k, v|
40
- c.send(:"#{k}=", v) if c[k].nil?
39
+ c = nil
40
+ fb.txn do |fbt|
41
+ c = fbt.insert
42
+ before.each do |k, v|
43
+ c.send(:"#{k}=", v) if c[k].nil?
44
+ end
41
45
  end
42
46
  c
43
47
  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.26.4' unless const_defined?(:VERSION)
13
+ VERSION = '0.26.6' unless const_defined?(:VERSION)
14
14
  end
@@ -50,4 +50,45 @@ class TestDelete < Fbe::Test
50
50
  assert_equal([1], f2['_id'])
51
51
  assert_equal([42], f2['_job'])
52
52
  end
53
+
54
+ def test_deletes_id
55
+ fb = Factbase.new
56
+ f = fb.insert
57
+ f._id = 44
58
+ Fbe.delete(f, '_id', fb:)
59
+ f2 = fb.query('(always)').each.to_a.first
60
+ assert_nil(f2['_id'])
61
+ assert_empty(f2.all_properties)
62
+ end
63
+
64
+ def test_deletes_in_transaction
65
+ $fb = Factbase.new
66
+ $global = {}
67
+ $options = Judges::Options.new(job_id: 42)
68
+ $loog = Loog::Buffer.new
69
+ Fbe.fb.txn do |fbt|
70
+ fbt.insert.then do |f|
71
+ f.issue = 444
72
+ f.where = 'github'
73
+ f.repository = 555
74
+ f.who = 887
75
+ f.when = Time.now
76
+ f.foo = 1
77
+ end
78
+ end
79
+ f1 = Fbe.fb.query('(always)').each.to_a.first
80
+ Fbe.delete(f1, 'foo')
81
+ f2 = Fbe.fb.query('(always)').each.to_a.first
82
+ assert_nil(f2['foo'])
83
+ end
84
+
85
+ def test_deletes_when_duplicate_id
86
+ fb = Factbase.new
87
+ f = fb.insert
88
+ f._id = 44
89
+ f._id = 45
90
+ Fbe.delete(f, '_id', fb:)
91
+ f2 = fb.query('(always)').each.to_a.first
92
+ assert_nil(f2['_id'])
93
+ end
53
94
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fbe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.26.4
4
+ version: 0.26.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko