cobhan 0.1.3 → 0.2.1

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: 236a2f8255bfff1d864296be21eeb788aa7e2eda4b6ec351c2acc5c1fdfea8b3
4
- data.tar.gz: c7a666719c503f2ab16b72cd5c1e26973aba29a410445de80376703213c1b397
3
+ metadata.gz: 9db46be416695ae19f78d794bff7d26d5e6f73d03a5c89a35cd7ab6959d501ea
4
+ data.tar.gz: f73725bd8cade9ece9b11d159b3df1eb41482fbfe39d150d0e9ae3c967dc2eac
5
5
  SHA512:
6
- metadata.gz: 18447be1bb9676bfd0d66ad6c84d91c229181a75775c16b174e52241659ccc43a9083001bf3e0ed2db1bb3d6542c489d1201582a5ae01903084bb1ee189e9079
7
- data.tar.gz: ec03eb376934045aec087c9b72ce9a831aee5c74f75fbf185c6a89c51569e798e238686e9737489eeafa9720dfc5ba8885c69570ed93082cc003a1233bd61247
6
+ metadata.gz: 1245bb5be6d2a9d22d648a9be179a10444cd02719b937058bfbdee1ee82069b83e5dd4e5cfa554143d177fd0fd05d6be686acd0325e245fb8822829211dbe7ad
7
+ data.tar.gz: 0c32181b11382225ea5ac57951b9b5350574f0a341ccd197cf897041061d2188dee0c96a91b35ea9cd75b848e362b8fa4a14e7844771076df6bd2ab26f4cdc09
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.1.0
1
+ 3.2.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.1] - 2023-01-25
4
+
5
+ - Support non GNU Lib C library file names with `load_library`
6
+ - Add Ruby 3.2 to the test matrix
7
+
8
+ ## [0.2.0] - 2022-03-18
9
+
10
+ - Remove default `MINIMUM_ALLOCATION` to allow for smaller buffers
11
+ - Force encoding to UTF-8 when converting C buffer to Ruby string
12
+
3
13
  ## [0.1.3] - 2022-03-14
4
14
 
5
15
  - Switch from `centos/7` to `ubuntu/focal64` vagrant box
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cobhan
4
- VERSION = '0.1.3'
4
+ VERSION = '0.2.1'
5
5
  end
data/lib/cobhan.rb CHANGED
@@ -15,7 +15,6 @@ module Cobhan
15
15
 
16
16
  SIZEOF_INT32 = 32 / 8
17
17
  BUFFER_HEADER_SIZE = SIZEOF_INT32 * 2
18
- MINIMUM_ALLOCATION = 1024
19
18
 
20
19
  def library_file_name(name)
21
20
  ext = EXTS[FFI::Platform::OS]
@@ -24,7 +23,9 @@ module Cobhan
24
23
  cpu_arch = CPU_ARCHS[FFI::Platform::ARCH]
25
24
  raise UnsupportedPlatformError, "Unsupported CPU: #{FFI::Platform::ARCH}" unless cpu_arch
26
25
 
27
- "#{name}-#{cpu_arch}.#{ext}"
26
+ libc_suffix = RbConfig::CONFIG['host_os'] == 'linux-musl' ? '-musl' : ''
27
+
28
+ "#{name}-#{cpu_arch}#{libc_suffix}.#{ext}"
28
29
  end
29
30
 
30
31
  def load_library(lib_root_path, name, functions)
@@ -52,7 +53,7 @@ module Cobhan
52
53
  buffer.get_bytes(BUFFER_HEADER_SIZE, length)
53
54
  else
54
55
  temp_to_string(buffer, length)
55
- end
56
+ end.force_encoding(Encoding::UTF_8)
56
57
  end
57
58
 
58
59
  def temp_to_string(buffer, length)
@@ -65,7 +66,6 @@ module Cobhan
65
66
  end
66
67
 
67
68
  def allocate_cbuffer(size)
68
- size = [size, MINIMUM_ALLOCATION].max
69
69
  buffer_ptr = FFI::MemoryPointer.new(1, BUFFER_HEADER_SIZE + size, false)
70
70
  buffer_ptr.put_int32(0, size)
71
71
  buffer_ptr.put_int32(SIZEOF_INT32, 0) # Reserved - must be zero
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cobhan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - GoDaddy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-14 00:00:00.000000000 Z
11
+ date: 2023-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -128,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
128
  - !ruby/object:Gem::Version
129
129
  version: '0'
130
130
  requirements: []
131
- rubygems_version: 3.3.7
131
+ rubygems_version: 3.4.1
132
132
  signing_key:
133
133
  specification_version: 4
134
134
  summary: Ruby wrapper library for the Cobhan FFI system