ffi-yajl 2.4.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: adacb1bf54171de960d4ac2ecdc0dd49085fdb34878757e56609eab6059be84e
4
- data.tar.gz: e4203b9546f527955f0837487c8c4bfec79d86d622faef07002f16a8337cea19
3
+ metadata.gz: c5ec16c37b0bf0e83072db4ac2a59946d3bbe33dd0ff14f24a9a6bd36d9f27a6
4
+ data.tar.gz: ceea10faee75d0359bb7baa2a9e092450a14daa167d99e27bc14af55271288a0
5
5
  SHA512:
6
- metadata.gz: 6775efd0a7759405886dc3d5c812c9c72d647d9959913e5d08785a731224aef9bfb53707b203db180465b05d4c1abe264473848ad4a6f10b408b7e897665bf9b
7
- data.tar.gz: e495c095604c93143f0fc030ed0390a2309998e0ab629f6a6c1f9586acac2a26dd738268c7551ed33564acdc0603f86c1e6c980be81cabc5990aa278d4ba5cff
6
+ metadata.gz: ec8f2c1ee081cd51a5b663e8ac556e3fa25b815f7529b66b7c54024f5fe1dc90b6af1dd1c7542c1be9725d76924aeaefec9f77ff79fa2194a007b8c05c3c42a6
7
+ data.tar.gz: f6ea602a13b858e0d9cd40b0cbf8bb01de7cdf95730ca6ad30d05aeb89412fda6468183daee8c4c20ec4f3fe641cc5b072425225edc32e1d0af2b89310469383
data/README.md CHANGED
@@ -15,7 +15,14 @@ ffi-yajl is a Ruby adapter for the [yajl](http://lloyd.github.io/yajl/) JSON par
15
15
 
16
16
  ## How to Install
17
17
 
18
- Install from the command-line:
18
+ **Warning** if building through Omnibus, a preinstalled ffi-yajl and libyajl2-gem version not matching the bundled version of the project you're attempting to build (e.g., Chef) may cause:
19
+
20
+ `cannot find -lyajldll: No such file or directory`
21
+
22
+ If your build script ends up up in this state, a short term fix is `gem uninstall -I libyajl2` before the failing `bundle install`
23
+
24
+
25
+ ### Install from the command-line:
19
26
 
20
27
  ```
21
28
  gem install ffi-yajl
@@ -0,0 +1,18 @@
1
+ _yajl_gen_alloc
2
+ _yajl_gen_array_close
3
+ _yajl_gen_array_open
4
+ _yajl_gen_bool
5
+ _yajl_gen_config
6
+ _yajl_gen_free
7
+ _yajl_gen_get_buf
8
+ _yajl_gen_map_close
9
+ _yajl_gen_map_open
10
+ _yajl_gen_null
11
+ _yajl_gen_number
12
+ _yajl_gen_string
13
+ _yajl_alloc
14
+ _yajl_complete_parse
15
+ _yajl_config
16
+ _yajl_free
17
+ _yajl_get_error
18
+ _yajl_parse
@@ -27,6 +27,27 @@ def windows?
27
27
  !!(RUBY_PLATFORM =~ /mswin|mingw|cygwin|windows/)
28
28
  end
29
29
 
30
+ def macos?
31
+ !!(RUBY_PLATFORM =~ /darwin/)
32
+ end
33
+
34
+ def clang?
35
+ cc_version = `#{RbConfig.expand("$(CC) --version")}`
36
+ cc_version.match?(/clang/i)
37
+ end
38
+
39
+ # XCode 14 warns if `-Wl,-undefined dynamic_lookup` is specified, and as
40
+ # a result Ruby interpreters compiled under XCode 14 no longer specify
41
+ # this flag by default in DLDFLAGS. Let's specify the list of dynamic symbols
42
+ # here to avoid compilation failures.
43
+ if clang? && macos?
44
+ symfile = File.join(__dir__, '../dlopen/yajl.sym')
45
+ dynamic_symbols = File.readlines(symfile)
46
+ dynamic_symbols.each do |sym|
47
+ $DLDFLAGS << " -Wl,-U,#{sym.strip}"
48
+ end
49
+ end
50
+
30
51
  if windows?
31
52
  # include our libyajldll.a definitions on windows in the libyajl2 gem
32
53
  $libs = "#{$libs} -lyajldll"
@@ -27,6 +27,27 @@ def windows?
27
27
  !!(RUBY_PLATFORM =~ /mswin|mingw|cygwin|windows/)
28
28
  end
29
29
 
30
+ def macos?
31
+ !!(RUBY_PLATFORM =~ /darwin/)
32
+ end
33
+
34
+ def clang?
35
+ cc_version = `#{RbConfig.expand("$(CC) --version")}`
36
+ cc_version.match?(/clang/i)
37
+ end
38
+
39
+ # XCode 14 warns if `-Wl,-undefined dynamic_lookup` is specified, and as
40
+ # a result Ruby interpreters compiled under XCode 14 no longer specify
41
+ # this flag by default in DLDFLAGS. Let's specify the list of dynamic symbols
42
+ # here to avoid compilation failures.
43
+ if clang? && macos?
44
+ symfile = File.join(__dir__, '../dlopen/yajl.sym')
45
+ dynamic_symbols = File.readlines(symfile)
46
+ dynamic_symbols.each do |sym|
47
+ $DLDFLAGS << " -Wl,-U,#{sym.strip}"
48
+ end
49
+ end
50
+
30
51
  if windows?
31
52
  # include our libyajldll.a definitions on windows in the libyajl2 gem
32
53
  $libs = "#{$libs} -lyajldll"
@@ -21,5 +21,5 @@
21
21
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
 
23
23
  module FFI_Yajl
24
- VERSION = "2.4.0".freeze
24
+ VERSION = "2.6.0".freeze
25
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-yajl
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lamont Granquist
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-07 00:00:00.000000000 Z
11
+ date: 2023-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: libyajl2
@@ -41,6 +41,7 @@ files:
41
41
  - bin/ffi-yajl-bench
42
42
  - ext/ffi_yajl/ext/dlopen/dlopen.c
43
43
  - ext/ffi_yajl/ext/dlopen/extconf.rb
44
+ - ext/ffi_yajl/ext/dlopen/yajl.sym
44
45
  - ext/ffi_yajl/ext/encoder/encoder.c
45
46
  - ext/ffi_yajl/ext/encoder/extconf.rb
46
47
  - ext/ffi_yajl/ext/parser/extconf.rb
@@ -95,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
96
  - !ruby/object:Gem::Version
96
97
  version: '0'
97
98
  requirements: []
98
- rubygems_version: 3.2.3
99
+ rubygems_version: 3.3.7
99
100
  signing_key:
100
101
  specification_version: 4
101
102
  summary: Ruby FFI wrapper around YAJL 2.x