factbase 0.12.1 → 0.13.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: 1ba24c42ea5df6fab3bfcf4477eff165173de5eb224c80e8bd1b1eeda5a9036d
4
- data.tar.gz: b0f9362eec0b148f451dcbc94012db27ac97a02e4c6fbe48e0303a33d5f46c9e
3
+ metadata.gz: cb06b280801b081a1ae2c02147b4c960017c52a0cdb2c38dcd895cff53943344
4
+ data.tar.gz: cde4f73ddf30a7d4b6d9f9b8dadf823c948f6bb5fa672ad180867a46ef7b9ce2
5
5
  SHA512:
6
- metadata.gz: e6460f586f42569fac5f6dedd783ab68e47f1fc2e7e05932033003586b40339044005d383306fce26f3f56a375d7a33d3a2798d3b84356e76c09550c6375e3d9
7
- data.tar.gz: c8067f91613d87093ebf824c4800298e2b2e25654fc4ad9b5c3fed4c26e8265e19968a8eac887e5b541de48e5ebc531df6925c4ad73c48b49b1cb80ba429e5b7
6
+ metadata.gz: 42072d2fd692798e3dd25a16167416cc6afd601d12998a1d0a5d79b2ab18d66bc09fcf40ae11e2a53af4df6fd9f5cba56a6adf32b94edd11e5122c9992304bbc
7
+ data.tar.gz: e6ec47e6c0715ac9c8148bc5ac25e36f6e009dd7da34c32386a7b5d97dcdf11c6ed6e5ed17f27ca03e2ad454bf5dacae0624ec7ab5119a4396f4a4134a6f5b11
@@ -16,4 +16,4 @@ jobs:
16
16
  runs-on: ubuntu-24.04
17
17
  steps:
18
18
  - uses: actions/checkout@v4
19
- - uses: crate-ci/typos@v1.33.1
19
+ - uses: crate-ci/typos@v1.34.0
data/Gemfile CHANGED
@@ -11,7 +11,7 @@ gem 'minitest-reporters', '~>1.7', require: false
11
11
  gem 'os', '~>1.1', require: false
12
12
  gem 'qbash', '~>0.4', require: false
13
13
  gem 'rake', '~>13.2', require: false
14
- gem 'rdoc', '~>6.13', require: false
14
+ gem 'rdoc', '6.14.1', require: false # GPL
15
15
  gem 'rubocop', '~>1.74', require: false
16
16
  gem 'rubocop-minitest', '~>0.38', require: false
17
17
  gem 'rubocop-performance', '~>1.25', require: false
data/Gemfile.lock CHANGED
@@ -24,7 +24,7 @@ GEM
24
24
  date (3.4.1)
25
25
  decoor (0.1.0)
26
26
  docile (1.4.1)
27
- elapsed (0.0.1)
27
+ elapsed (0.1.0)
28
28
  loog (> 0)
29
29
  tago (> 0)
30
30
  ellipsized (0.3.0)
@@ -67,7 +67,7 @@ GEM
67
67
  racc (1.8.1)
68
68
  rainbow (3.1.1)
69
69
  rake (13.3.0)
70
- rdoc (6.14.1)
70
+ rdoc (6.14.2)
71
71
  erb
72
72
  psych (>= 4.0.0)
73
73
  regexp_parser (2.10.0)
@@ -134,7 +134,7 @@ DEPENDENCIES
134
134
  os (~> 1.1)
135
135
  qbash (~> 0.4)
136
136
  rake (~> 13.2)
137
- rdoc (~> 6.13)
137
+ rdoc (= 6.14.1)
138
138
  rubocop (~> 1.74)
139
139
  rubocop-minitest (~> 0.38)
140
140
  rubocop-performance (~> 1.25)
@@ -9,5 +9,5 @@
9
9
  # License:: MIT
10
10
  class Factbase
11
11
  # Current version of the gem (changed by .rultor.yml on every release)
12
- VERSION = '0.12.1' unless const_defined?(:VERSION)
12
+ VERSION = '0.13.0' unless const_defined?(:VERSION)
13
13
  end
data/lib/factbase.rb CHANGED
@@ -177,7 +177,12 @@ class Factbase
177
177
  taped = Factbase::Taped.new(before)
178
178
  catch :commit do
179
179
  require_relative 'factbase/light'
180
- yield Factbase::Light.new(Factbase.new(taped))
180
+ commit = false
181
+ catch :rollback do
182
+ yield Factbase::Light.new(Factbase.new(taped))
183
+ commit = true
184
+ end
185
+ return 0 unless commit
181
186
  rescue Factbase::Rollback
182
187
  return 0
183
188
  end
@@ -486,6 +486,15 @@ class TestFactbase < Factbase::Test
486
486
  assert_equal(1, fb.size)
487
487
  end
488
488
 
489
+ def test_rolls_back
490
+ fb = Factbase.new
491
+ fb.txn do |fbt|
492
+ fbt.insert.foo = 1
493
+ throw :rollback
494
+ end
495
+ assert_equal(0, fb.size)
496
+ end
497
+
489
498
  def test_get_raise_for_empty_fact
490
499
  fb = Factbase.new
491
500
  fb.txn do |fbt|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko