ratomic 0.3.3 → 0.3.4

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: a88895d3aced2207bb6b61384a1723886b68adcb675b943bceba5819835e58fa
4
- data.tar.gz: 12b89fcefcb4dda904af5e97405611a11422a301204ff533e5fe92080a430dc1
3
+ metadata.gz: 9f7f62fe33dd95ae779c85f6cb943ea7e8127e3b856cf70d24fdf6d9ef539449
4
+ data.tar.gz: '08ef180ab7ad61209c4c054bca924da721e56ee226438d7d46ab647311deea5d'
5
5
  SHA512:
6
- metadata.gz: 2f509a32b2daa545a70e79a7d61b0a7956de0dd42861e1c6e45c32f0c5f34e22af233f0e29485c4bcadfa668bff91415743c101fc2ec04844491c1976dbcdcea
7
- data.tar.gz: a132b4e4cc0a13bc2ad1229be83875e5626f27989a1a5fd29a5482ab4f93ff456abe26e46477aee231a2436a9aa71dcc4f011b9c1b2df990313951313eae9bb1
6
+ metadata.gz: 2d575eb6138ff11f651692660725a46c7d1b60e4ae81b8bbcf1ede502dc57509d5b9db95ea7417e6015fc215ec999b4e1d9a1ddc7fe68ef9dab74a6d6b666d0c
7
+ data.tar.gz: 8a3e2b05eb1df9f5b4d08e7c360a350c73073fef8252fcb6baad5596e5c36077108b3e15228c5317189d3598190faca298f1d364f23ab59200929ec0d7a253b4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.3.4] - 2026-06-06
4
+
5
+ - Move the compiled native extension into the versioned `lib/ratomic/4.0/`
6
+ layout used by the installed gem.
7
+ - Load the versioned native artifact explicitly and mark native support as
8
+ unavailable when the extension is missing.
9
+ - Add loader coverage for both the versioned native path and the native-disabled
10
+ branch.
11
+
3
12
  ## [0.3.3] - 2026-06-06
4
13
 
5
14
  - Fix `require "ratomic"` for installed gems by resolving the packaged native
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Ratomic
4
4
  # Current gem version string.
5
- VERSION = "0.3.3"
5
+ VERSION = "0.3.4"
6
6
  end
data/lib/ratomic.rb CHANGED
@@ -9,26 +9,27 @@ require "rbconfig"
9
9
  #
10
10
  # The public API currently includes {Counter}, {Map}, {Queue}, and {Pool}.
11
11
  module Ratomic
12
- # Base error class for Ratomic-specific failures.
13
- class Error < StandardError; end
14
-
15
12
  def self.load_native_extension
16
- packaged_native = Dir[File.join(__dir__, "ratomic", "*", "ratomic.{so,bundle}")].min
13
+ ruby_api_ver = RbConfig::CONFIG.fetch("ruby_version").split(".", 3)[0, 2].join(".")
14
+ require_relative "ratomic/#{ruby_api_ver}/ratomic"
15
+ @native_enabled = true
16
+ rescue LoadError
17
+ @native_enabled = false
18
+ end
17
19
 
18
- if packaged_native
19
- require packaged_native.sub(/\.(so|bundle)\z/, "")
20
- else
21
- require "ratomic/ratomic"
22
- end
20
+ def self.native_enabled?
21
+ @native_enabled == true
23
22
  end
24
23
  private_class_method :load_native_extension
24
+
25
+ # Base error class for Ratomic-specific failures.
26
+ class Error < StandardError; end
25
27
  end
26
28
 
27
29
  Ratomic.send(:load_native_extension)
28
- require "ratomic/version"
29
-
30
- require "ratomic/undefined"
31
- require "ratomic/counter"
32
- require "ratomic/map"
33
- require "ratomic/queue"
34
- require "ratomic/pool"
30
+ require_relative "ratomic/version"
31
+ require_relative "ratomic/undefined"
32
+ require_relative "ratomic/counter"
33
+ require_relative "ratomic/map"
34
+ require_relative "ratomic/queue"
35
+ require_relative "ratomic/pool"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ratomic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham