archive_r_ruby 0.1.17 → 0.1.19

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/archive_r.rb +19 -12
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7933b5a6c8937351d27c46f2a02b7fe537281961cd161fabbc42f5ea5c5cedc
4
- data.tar.gz: 8149756d4befa238a17821ec13680a62d68c3a4caf775f866fb3de9abd378ec1
3
+ metadata.gz: cc310babc59264559f5685af862bdbebf891f1c3c6e8ee81311a5d1b8e8e47d3
4
+ data.tar.gz: 0432707df22ab780453161297e8a0641e81927f77da80a5c286d01db562eb936
5
5
  SHA512:
6
- metadata.gz: e580feab6f0247566a8b2a1c6cbd5484b54391f866c66f6e5acf1229b75fba15e7d2fe1072cfe7557250fd5cc42eca6ad88212080fa2cc7ce7552ba479241294
7
- data.tar.gz: aa2318e00a3160692865f4167759f9fc829ecb77c186dd244f2038d7ecbe68490eb5bdbef6483b32c6113d57c97da6048fed74e7f8e719f3b6be92dea1eceec2
6
+ metadata.gz: e802d0f9ccddbb7de5532fa55550517c5415a60f2186a575f396e99aba82f928bfbb2383a4892042732b61dbee3c622c3f7343c46a50f1ab82256ddeb7039b49
7
+ data.tar.gz: 5408f70670e3a7c191dafa231d29251c80460f249516d35c35e0a9edc479f287147371ff8a191978f2193af52d353b51394a63df2a788fd25ba72015b57a0426
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.17
1
+ 0.1.19
data/lib/archive_r.rb CHANGED
@@ -17,21 +17,28 @@ begin
17
17
  end
18
18
  end
19
19
 
20
- # Prefer the packaged gem layout (lib/archive_r/archive_r.so)
21
- require_relative 'archive_r/archive_r'
22
- rescue LoadError
23
- begin
24
- # Fallback to the local development layout (bindings/ruby/archive_r.so)
25
- require_relative '../archive_r'
26
- rescue LoadError
20
+ load_errors = []
21
+ extension_candidates = [
22
+ ['require_relative', 'archive_r/archive_r'],
23
+ ['require_relative', '../archive_r'],
24
+ ['require', 'archive_r/archive_r']
25
+ ]
26
+
27
+ loaded = false
28
+ extension_candidates.each do |method_name, target|
27
29
  begin
28
- # Fallback for Windows/MinGW where extension might be directly in lib/ or current dir
29
- require 'archive_r/archive_r'
30
- rescue LoadError
31
- # Last resort: try requiring without directory prefix (common in some Windows setups)
32
- require 'archive_r'
30
+ __send__(method_name, target)
31
+ loaded = true
32
+ break
33
+ rescue LoadError => e
34
+ load_errors << [method_name, target, e.message]
33
35
  end
34
36
  end
37
+
38
+ unless loaded
39
+ details = load_errors.map { |method_name, target, message| "#{method_name}(#{target}): #{message}" }.join(' | ')
40
+ raise LoadError, "Failed to load archive_r native extension. #{details}"
41
+ end
35
42
  end
36
43
 
37
44
  module Archive_r
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: archive_r_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.17
4
+ version: 0.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - raizo.tcs
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  requirements: []
112
- rubygems_version: 4.0.6
112
+ rubygems_version: 4.0.7
113
113
  specification_version: 4
114
114
  summary: 'Ruby bindings for archive_r: libarchive-based streaming traversal for recursive
115
115
  nested archives (no temp files, no large in-memory buffers)'