factbase 0.9.2 → 0.9.3

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: 2b0b91a22c7ec63e9ec1b98bc325006645243b11d2b0fa1ca591f005c5e7b34e
4
- data.tar.gz: 60014d07339a593674ec768b63c99a4a993f7b22a0a6f1eb1386e8137c90db30
3
+ metadata.gz: 20eec19cec2db862d93eb5efc62e1eda1bb01dcc5edc2e96318d6536afcfffd3
4
+ data.tar.gz: 63ce57fb3245985e615abd82c10a1c61e72fe4fbd1987c5781b1937ab8bf4ed4
5
5
  SHA512:
6
- metadata.gz: 82e2abb7c56c198486d512ee9145c22399f01342107b4ebac14556977f87d8811908230522473b926057b04f355e890e391c313e488580cf1a1bb17b658e1dd7
7
- data.tar.gz: 03225a085c0acb3d9bc57ddaf71ed4c2a878c1cafc88858b39ee0872ff29348ad28d772506eca16fbf6f2183e9a55ddb56e77899b49289f15d72bc92193d6b98
6
+ metadata.gz: 6dd94399d95fd3b6e3654786436d63f37ab650d47261b79ea09c5012e81273579afc53285310dc57e877018faffd40609dea2156597d49157b2caa2eeac91353
7
+ data.tar.gz: eaea23931db92c65643e0617617246b8d7b7aebca40c11f4eae158fefe9ad0cb169bae5cac05155288e62b112d52eae407e2ced76043f76e24d7091ec64efa28
data/Gemfile.lock CHANGED
@@ -83,13 +83,13 @@ GEM
83
83
  builder
84
84
  minitest (>= 5.0)
85
85
  ruby-progressbar
86
- nokogiri (1.18.3-arm64-darwin)
86
+ nokogiri (1.18.4-arm64-darwin)
87
87
  racc (~> 1.4)
88
- nokogiri (1.18.3-x64-mingw-ucrt)
88
+ nokogiri (1.18.4-x64-mingw-ucrt)
89
89
  racc (~> 1.4)
90
- nokogiri (1.18.3-x86_64-darwin)
90
+ nokogiri (1.18.4-x86_64-darwin)
91
91
  racc (~> 1.4)
92
- nokogiri (1.18.3-x86_64-linux-gnu)
92
+ nokogiri (1.18.4-x86_64-linux-gnu)
93
93
  racc (~> 1.4)
94
94
  os (1.1.4)
95
95
  others (0.0.3)
@@ -168,7 +168,7 @@ GEM
168
168
  rubocop-ast (>= 1.38.0, < 2.0)
169
169
  ruby-progressbar (~> 1.7)
170
170
  unicode-display_width (>= 2.4.0, < 4.0)
171
- rubocop-ast (1.38.1)
171
+ rubocop-ast (1.39.0)
172
172
  parser (>= 3.3.1.0)
173
173
  rubocop-minitest (0.37.1)
174
174
  lint_roller (~> 1.1)
@@ -25,7 +25,7 @@ class Factbase::SyncFactbase
25
25
  # Insert a new fact and return it.
26
26
  # @return [Factbase::Fact] The fact just inserted
27
27
  def insert
28
- @mutex.synchronize do
28
+ try_lock do
29
29
  @origin.insert
30
30
  end
31
31
  end
@@ -54,4 +54,13 @@ class Factbase::SyncFactbase
54
54
  yield Factbase::SyncFactbase.new(fbt, @mutex)
55
55
  end
56
56
  end
57
+
58
+ private
59
+
60
+ def try_lock
61
+ locked = @mutex.try_lock
62
+ r = yield
63
+ @mutex.unlock if locked
64
+ r
65
+ end
57
66
  end
data/lib/factbase.rb CHANGED
@@ -82,7 +82,7 @@ require 'yaml'
82
82
  # License:: MIT
83
83
  class Factbase
84
84
  # Current version of the gem (changed by .rultor.yml on every release)
85
- VERSION = '0.9.2' unless const_defined?(:VERSION)
85
+ VERSION = '0.9.3' unless const_defined?(:VERSION)
86
86
 
87
87
  # An exception that may be thrown in a transaction, to roll it back.
88
88
  class Rollback < StandardError; end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
5
+
6
+ require_relative '../../test__helper'
7
+ require_relative '../../../lib/factbase'
8
+ require_relative '../../../lib/factbase/sync/sync_factbase'
9
+
10
+ # Sync factbase test.
11
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
12
+ # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
13
+ # License:: MIT
14
+ class TestSyncFactbase < Factbase::Test
15
+ def test_queries_and_inserts
16
+ fb = Factbase::SyncFactbase.new(Factbase.new)
17
+ fb.insert.foo = 42
18
+ fb.query('(exists foo)').each do
19
+ fb.insert
20
+ end
21
+ end
22
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-03-14 00:00:00.000000000 Z
10
+ date: 2025-03-17 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: backtrace
@@ -219,6 +219,7 @@ files:
219
219
  - test/factbase/cached/test_cached_factbase.rb
220
220
  - test/factbase/cached/test_cached_query.rb
221
221
  - test/factbase/indexed/test_indexed_query.rb
222
+ - test/factbase/sync/test_sync_factbase.rb
222
223
  - test/factbase/sync/test_sync_query.rb
223
224
  - test/factbase/terms/test_aggregates.rb
224
225
  - test/factbase/terms/test_aliases.rb