ffi-yajl 0.0.1-universal-java → 3.0.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 +5 -5
- data/LICENSE +21 -201
- data/README.md +105 -10
- data/bin/ffi-yajl-bench +11 -11
- data/ext/ffi_yajl/ext/dlopen/dlopen.c +40 -0
- data/ext/ffi_yajl/ext/dlopen/extconf.rb +16 -0
- data/ext/ffi_yajl/ext/dlopen/yajl.sym +18 -0
- data/ext/ffi_yajl/ext/encoder/encoder.c +270 -115
- data/ext/ffi_yajl/ext/encoder/extconf.rb +71 -14
- data/ext/ffi_yajl/ext/parser/extconf.rb +71 -14
- data/ext/ffi_yajl/ext/parser/parser.c +85 -44
- data/lib/ffi_yajl/benchmark/encode.rb +39 -92
- data/lib/ffi_yajl/benchmark/encode_json_and_marshal.rb +23 -23
- data/lib/ffi_yajl/benchmark/encode_json_and_yaml.rb +24 -30
- data/lib/ffi_yajl/benchmark/encode_profile.rb +15 -19
- data/lib/ffi_yajl/benchmark/http.rb +21 -25
- data/lib/ffi_yajl/benchmark/parse.rb +77 -117
- data/lib/ffi_yajl/benchmark/parse_json_and_marshal.rb +27 -27
- data/lib/ffi_yajl/benchmark/parse_json_and_yaml.rb +30 -30
- data/lib/ffi_yajl/benchmark/parse_profile.rb +14 -18
- data/lib/ffi_yajl/benchmark/parse_profile_ruby_prof.rb +14 -19
- data/lib/ffi_yajl/benchmark/parse_stream.rb +28 -28
- data/lib/ffi_yajl/benchmark.rb +26 -6
- data/lib/ffi_yajl/encoder.rb +47 -6
- data/lib/ffi_yajl/ext.rb +37 -10
- data/lib/ffi_yajl/ffi/encoder.rb +150 -63
- data/lib/ffi_yajl/ffi/parser.rb +82 -64
- data/lib/ffi_yajl/ffi.rb +70 -46
- data/lib/ffi_yajl/map_library_name.rb +109 -0
- data/lib/ffi_yajl/parser.rb +69 -1
- data/lib/ffi_yajl/platform.rb +29 -0
- data/lib/ffi_yajl/version.rb +23 -1
- data/lib/ffi_yajl.rb +44 -8
- metadata +25 -238
- data/Rakefile +0 -62
- data/ext/libyajl2/extconf.rb +0 -65
- data/ext/libyajl2/vendored/.git +0 -1
- data/ext/libyajl2/vendored/.gitignore +0 -3
- data/ext/libyajl2/vendored/BUILDING +0 -23
- data/ext/libyajl2/vendored/BUILDING.win32 +0 -27
- data/ext/libyajl2/vendored/CMakeLists.txt +0 -79
- data/ext/libyajl2/vendored/COPYING +0 -13
- data/ext/libyajl2/vendored/ChangeLog +0 -175
- data/ext/libyajl2/vendored/README +0 -74
- data/ext/libyajl2/vendored/TODO +0 -9
- data/ext/libyajl2/vendored/YAJLDoc.cmake +0 -26
- data/ext/libyajl2/vendored/configure +0 -79
- data/ext/libyajl2/vendored/example/CMakeLists.txt +0 -23
- data/ext/libyajl2/vendored/example/README.md +0 -7
- data/ext/libyajl2/vendored/example/parse_config.c +0 -69
- data/ext/libyajl2/vendored/example/sample.config +0 -101
- data/ext/libyajl2/vendored/perf/CMakeLists.txt +0 -23
- data/ext/libyajl2/vendored/perf/documents.c +0 -1418
- data/ext/libyajl2/vendored/perf/documents.h +0 -28
- data/ext/libyajl2/vendored/perf/perftest.c +0 -134
- data/ext/libyajl2/vendored/reformatter/CMakeLists.txt +0 -39
- data/ext/libyajl2/vendored/reformatter/json_reformat.c +0 -194
- data/ext/libyajl2/vendored/src/CMakeLists.txt +0 -86
- data/ext/libyajl2/vendored/src/YAJL.dxy +0 -1258
- data/ext/libyajl2/vendored/src/api/yajl_common.h +0 -75
- data/ext/libyajl2/vendored/src/api/yajl_gen.h +0 -157
- data/ext/libyajl2/vendored/src/api/yajl_parse.h +0 -226
- data/ext/libyajl2/vendored/src/api/yajl_tree.h +0 -185
- data/ext/libyajl2/vendored/src/api/yajl_version.h.cmake +0 -23
- data/ext/libyajl2/vendored/src/yajl +0 -33
- data/ext/libyajl2/vendored/src/yajl.c +0 -175
- data/ext/libyajl2/vendored/src/yajl.pc.cmake +0 -9
- data/ext/libyajl2/vendored/src/yajl_alloc.c +0 -52
- data/ext/libyajl2/vendored/src/yajl_alloc.h +0 -34
- data/ext/libyajl2/vendored/src/yajl_buf.c +0 -103
- data/ext/libyajl2/vendored/src/yajl_buf.h +0 -57
- data/ext/libyajl2/vendored/src/yajl_bytestack.h +0 -69
- data/ext/libyajl2/vendored/src/yajl_encode.c +0 -220
- data/ext/libyajl2/vendored/src/yajl_encode.h +0 -34
- data/ext/libyajl2/vendored/src/yajl_gen.c +0 -354
- data/ext/libyajl2/vendored/src/yajl_lex.c +0 -763
- data/ext/libyajl2/vendored/src/yajl_lex.h +0 -117
- data/ext/libyajl2/vendored/src/yajl_parser.c +0 -498
- data/ext/libyajl2/vendored/src/yajl_parser.h +0 -78
- data/ext/libyajl2/vendored/src/yajl_tree.c +0 -503
- data/ext/libyajl2/vendored/src/yajl_version.c +0 -7
- data/ext/libyajl2/vendored/test/CMakeLists.txt +0 -23
- data/ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json +0 -1
- data/ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json.gold +0 -36
- data/ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json +0 -11
- data/ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json.gold +0 -9
- data/ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json +0 -1
- data/ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json +0 -1
- data/ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json +0 -1
- data/ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/am_eof.json +0 -1
- data/ext/libyajl2/vendored/test/cases/am_eof.json.gold +0 -4
- data/ext/libyajl2/vendored/test/cases/am_integers.json +0 -1
- data/ext/libyajl2/vendored/test/cases/am_integers.json.gold +0 -3
- data/ext/libyajl2/vendored/test/cases/am_multiple.json +0 -3
- data/ext/libyajl2/vendored/test/cases/am_multiple.json.gold +0 -5
- data/ext/libyajl2/vendored/test/cases/am_stuff.json +0 -7
- data/ext/libyajl2/vendored/test/cases/am_stuff.json.gold +0 -14
- data/ext/libyajl2/vendored/test/cases/ap_array_open.json +0 -1
- data/ext/libyajl2/vendored/test/cases/ap_array_open.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/ap_eof_str.json +0 -1
- data/ext/libyajl2/vendored/test/cases/ap_eof_str.json.gold +0 -1
- data/ext/libyajl2/vendored/test/cases/ap_map_open.json +0 -1
- data/ext/libyajl2/vendored/test/cases/ap_map_open.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/ap_partial_ok.json +0 -1
- data/ext/libyajl2/vendored/test/cases/ap_partial_ok.json.gold +0 -4
- data/ext/libyajl2/vendored/test/cases/array.json +0 -6
- data/ext/libyajl2/vendored/test/cases/array.json.gold +0 -22
- data/ext/libyajl2/vendored/test/cases/array_close.json +0 -1
- data/ext/libyajl2/vendored/test/cases/array_close.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/bignums.json +0 -1
- data/ext/libyajl2/vendored/test/cases/bignums.json.gold +0 -5
- data/ext/libyajl2/vendored/test/cases/bogus_char.json +0 -4
- data/ext/libyajl2/vendored/test/cases/bogus_char.json.gold +0 -10
- data/ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json +0 -1
- data/ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/deep_arrays.json +0 -1
- data/ext/libyajl2/vendored/test/cases/deep_arrays.json.gold +0 -2049
- data/ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json +0 -1
- data/ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json.gold +0 -36
- data/ext/libyajl2/vendored/test/cases/doubles.json +0 -1
- data/ext/libyajl2/vendored/test/cases/doubles.json.gold +0 -7
- data/ext/libyajl2/vendored/test/cases/doubles_in_array.json +0 -1
- data/ext/libyajl2/vendored/test/cases/doubles_in_array.json.gold +0 -8
- data/ext/libyajl2/vendored/test/cases/empty_array.json +0 -1
- data/ext/libyajl2/vendored/test/cases/empty_array.json.gold +0 -3
- data/ext/libyajl2/vendored/test/cases/empty_string.json +0 -1
- data/ext/libyajl2/vendored/test/cases/empty_string.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/escaped_bulgarian.json +0 -4
- data/ext/libyajl2/vendored/test/cases/escaped_bulgarian.json.gold +0 -7
- data/ext/libyajl2/vendored/test/cases/escaped_foobar.json +0 -1
- data/ext/libyajl2/vendored/test/cases/escaped_foobar.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/false.json +0 -1
- data/ext/libyajl2/vendored/test/cases/false.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json +0 -1
- data/ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json.gold +0 -3
- data/ext/libyajl2/vendored/test/cases/fg_issue_7.json +0 -1
- data/ext/libyajl2/vendored/test/cases/fg_issue_7.json.gold +0 -3
- data/ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json +0 -1
- data/ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json.gold +0 -3
- data/ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json +0 -1
- data/ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json.gold +0 -3
- data/ext/libyajl2/vendored/test/cases/four_byte_utf8.json +0 -2
- data/ext/libyajl2/vendored/test/cases/four_byte_utf8.json.gold +0 -5
- data/ext/libyajl2/vendored/test/cases/high_overflow.json +0 -1
- data/ext/libyajl2/vendored/test/cases/high_overflow.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/integers.json +0 -3
- data/ext/libyajl2/vendored/test/cases/integers.json.gold +0 -14
- data/ext/libyajl2/vendored/test/cases/invalid_utf8.json +0 -1
- data/ext/libyajl2/vendored/test/cases/invalid_utf8.json.gold +0 -3
- data/ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json +0 -1
- data/ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/leading_zero_in_number.json +0 -1
- data/ext/libyajl2/vendored/test/cases/leading_zero_in_number.json.gold +0 -5
- data/ext/libyajl2/vendored/test/cases/lonely_minus_sign.json +0 -7
- data/ext/libyajl2/vendored/test/cases/lonely_minus_sign.json.gold +0 -9
- data/ext/libyajl2/vendored/test/cases/lonely_number.json +0 -1
- data/ext/libyajl2/vendored/test/cases/lonely_number.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/low_overflow.json +0 -1
- data/ext/libyajl2/vendored/test/cases/low_overflow.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/map_close.json +0 -1
- data/ext/libyajl2/vendored/test/cases/map_close.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json +0 -1
- data/ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json +0 -1
- data/ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/multiple.json +0 -3
- data/ext/libyajl2/vendored/test/cases/multiple.json.gold +0 -4
- data/ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json +0 -1
- data/ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json.gold +0 -8
- data/ext/libyajl2/vendored/test/cases/np_partial_bad.json +0 -1
- data/ext/libyajl2/vendored/test/cases/np_partial_bad.json.gold +0 -5
- data/ext/libyajl2/vendored/test/cases/null.json +0 -1
- data/ext/libyajl2/vendored/test/cases/null.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/nulls_and_bools.json +0 -5
- data/ext/libyajl2/vendored/test/cases/nulls_and_bools.json.gold +0 -9
- data/ext/libyajl2/vendored/test/cases/simple.json +0 -5
- data/ext/libyajl2/vendored/test/cases/simple.json.gold +0 -9
- data/ext/libyajl2/vendored/test/cases/simple_with_comments.json +0 -11
- data/ext/libyajl2/vendored/test/cases/simple_with_comments.json.gold +0 -5
- data/ext/libyajl2/vendored/test/cases/string_invalid_escape.json +0 -1
- data/ext/libyajl2/vendored/test/cases/string_invalid_escape.json.gold +0 -3
- data/ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json +0 -1
- data/ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/string_with_escapes.json +0 -3
- data/ext/libyajl2/vendored/test/cases/string_with_escapes.json.gold +0 -7
- data/ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json +0 -2
- data/ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/three_byte_utf8.json +0 -1
- data/ext/libyajl2/vendored/test/cases/three_byte_utf8.json.gold +0 -7
- data/ext/libyajl2/vendored/test/cases/true.json +0 -1
- data/ext/libyajl2/vendored/test/cases/true.json.gold +0 -2
- data/ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json +0 -1
- data/ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json.gold +0 -4
- data/ext/libyajl2/vendored/test/cases/zerobyte.json +0 -1
- data/ext/libyajl2/vendored/test/cases/zerobyte.json.gold +0 -0
- data/ext/libyajl2/vendored/test/run_tests.sh +0 -94
- data/ext/libyajl2/vendored/test/yajl_test.c +0 -281
- data/ext/libyajl2/vendored/verify/CMakeLists.txt +0 -39
- data/ext/libyajl2/vendored/verify/json_verify.c +0 -116
- data/lib/ffi_yajl/json_gem.rb +0 -121
- data/lib/libyajl.so +0 -0
- data/lib/libyajl.so.2 +0 -0
- data/lib/libyajl.so.2.0.5 +0 -0
- data/lib/libyajl_s.a +0 -0
- data/spec/ffi_yajl/encoder_spec.rb +0 -39
- data/spec/ffi_yajl/json_gem_spec.rb +0 -355
- data/spec/ffi_yajl/parser_spec.rb +0 -78
- data/spec/spec_helper.rb +0 -14
data/lib/ffi_yajl.rb
CHANGED
|
@@ -1,14 +1,50 @@
|
|
|
1
|
+
# Copyright (c) 2015 Lamont Granquist
|
|
2
|
+
# Copyright (c) 2013-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
1
22
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
23
|
+
#
|
|
24
|
+
# Precedence:
|
|
25
|
+
#
|
|
26
|
+
# - The FORCE_FFI_YAJL env var takes precedence over everything else, the user
|
|
27
|
+
# theoretically knows best
|
|
28
|
+
# - Java always gets ffi because jruby only supports ffi
|
|
29
|
+
# - There is a conflict between loading libyajl 1.x and 2.x in the same VM
|
|
30
|
+
# process (on a fundamental basis, simply guru medidate about how the
|
|
31
|
+
# c-symbols work if you load both libs). For some reason the ffi interface
|
|
32
|
+
# seems to work fine sometimes (i'm not sure how) so we fall back to that--
|
|
33
|
+
# this is much more likely to be converted into a raise than to have the warn
|
|
34
|
+
# dropped, so don't bother asking for that.
|
|
35
|
+
# - Then we try the c-ext and rescue into ffi that fails
|
|
36
|
+
#
|
|
37
|
+
if ENV["FORCE_FFI_YAJL"] == "ext"
|
|
38
|
+
require_relative "ffi_yajl/ext"
|
|
39
|
+
elsif ENV["FORCE_FFI_YAJL"] == "ffi"
|
|
40
|
+
require_relative "ffi_yajl/ffi"
|
|
41
|
+
elsif RUBY_PLATFORM == "java"
|
|
42
|
+
require_relative "ffi_yajl/ffi"
|
|
8
43
|
else
|
|
9
44
|
begin
|
|
10
|
-
|
|
45
|
+
require_relative "ffi_yajl/ext"
|
|
11
46
|
rescue LoadError
|
|
12
|
-
|
|
47
|
+
warn "failed to load the ffi-yajl c-extension, falling back to ffi interface"
|
|
48
|
+
require_relative "ffi_yajl/ffi"
|
|
13
49
|
end
|
|
14
50
|
end
|
metadata
CHANGED
|
@@ -1,270 +1,65 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ffi-yajl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
5
|
-
platform:
|
|
4
|
+
version: 3.0.1
|
|
5
|
+
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lamont Granquist
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-07-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: libyajl2
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '10.1'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '10.1'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: rspec
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.14'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '2.14'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: pry
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
17
|
+
- - ">="
|
|
46
18
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
48
|
-
type: :
|
|
19
|
+
version: '2.1'
|
|
20
|
+
type: :runtime
|
|
49
21
|
prerelease: false
|
|
50
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
23
|
requirements:
|
|
52
|
-
- - "
|
|
24
|
+
- - ">="
|
|
53
25
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
26
|
+
version: '2.1'
|
|
55
27
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
28
|
+
name: cookstyle
|
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
|
58
30
|
requirements:
|
|
59
31
|
- - "~>"
|
|
60
32
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
33
|
+
version: '8.1'
|
|
62
34
|
type: :development
|
|
63
35
|
prerelease: false
|
|
64
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
37
|
requirements:
|
|
66
38
|
- - "~>"
|
|
67
39
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: ffi
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '1.9'
|
|
76
|
-
type: :runtime
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '1.9'
|
|
40
|
+
version: '8.1'
|
|
83
41
|
description: Ruby FFI wrapper around YAJL 2.x
|
|
84
|
-
email: lamont@
|
|
42
|
+
email: lamont@chef.io
|
|
85
43
|
executables:
|
|
86
44
|
- ffi-yajl-bench
|
|
87
45
|
extensions:
|
|
88
|
-
- ext/
|
|
46
|
+
- ext/ffi_yajl/ext/encoder/extconf.rb
|
|
47
|
+
- ext/ffi_yajl/ext/parser/extconf.rb
|
|
48
|
+
- ext/ffi_yajl/ext/dlopen/extconf.rb
|
|
89
49
|
extra_rdoc_files:
|
|
90
50
|
- README.md
|
|
91
51
|
- LICENSE
|
|
92
52
|
files:
|
|
93
53
|
- LICENSE
|
|
94
54
|
- README.md
|
|
95
|
-
- Rakefile
|
|
96
55
|
- bin/ffi-yajl-bench
|
|
56
|
+
- ext/ffi_yajl/ext/dlopen/dlopen.c
|
|
57
|
+
- ext/ffi_yajl/ext/dlopen/extconf.rb
|
|
58
|
+
- ext/ffi_yajl/ext/dlopen/yajl.sym
|
|
97
59
|
- ext/ffi_yajl/ext/encoder/encoder.c
|
|
98
60
|
- ext/ffi_yajl/ext/encoder/extconf.rb
|
|
99
61
|
- ext/ffi_yajl/ext/parser/extconf.rb
|
|
100
62
|
- ext/ffi_yajl/ext/parser/parser.c
|
|
101
|
-
- ext/libyajl2/extconf.rb
|
|
102
|
-
- ext/libyajl2/vendored/.git
|
|
103
|
-
- ext/libyajl2/vendored/.gitignore
|
|
104
|
-
- ext/libyajl2/vendored/BUILDING
|
|
105
|
-
- ext/libyajl2/vendored/BUILDING.win32
|
|
106
|
-
- ext/libyajl2/vendored/CMakeLists.txt
|
|
107
|
-
- ext/libyajl2/vendored/COPYING
|
|
108
|
-
- ext/libyajl2/vendored/ChangeLog
|
|
109
|
-
- ext/libyajl2/vendored/README
|
|
110
|
-
- ext/libyajl2/vendored/TODO
|
|
111
|
-
- ext/libyajl2/vendored/YAJLDoc.cmake
|
|
112
|
-
- ext/libyajl2/vendored/configure
|
|
113
|
-
- ext/libyajl2/vendored/example/CMakeLists.txt
|
|
114
|
-
- ext/libyajl2/vendored/example/README.md
|
|
115
|
-
- ext/libyajl2/vendored/example/parse_config.c
|
|
116
|
-
- ext/libyajl2/vendored/example/sample.config
|
|
117
|
-
- ext/libyajl2/vendored/perf/CMakeLists.txt
|
|
118
|
-
- ext/libyajl2/vendored/perf/documents.c
|
|
119
|
-
- ext/libyajl2/vendored/perf/documents.h
|
|
120
|
-
- ext/libyajl2/vendored/perf/perftest.c
|
|
121
|
-
- ext/libyajl2/vendored/reformatter/CMakeLists.txt
|
|
122
|
-
- ext/libyajl2/vendored/reformatter/json_reformat.c
|
|
123
|
-
- ext/libyajl2/vendored/src/CMakeLists.txt
|
|
124
|
-
- ext/libyajl2/vendored/src/YAJL.dxy
|
|
125
|
-
- ext/libyajl2/vendored/src/api/yajl_common.h
|
|
126
|
-
- ext/libyajl2/vendored/src/api/yajl_gen.h
|
|
127
|
-
- ext/libyajl2/vendored/src/api/yajl_parse.h
|
|
128
|
-
- ext/libyajl2/vendored/src/api/yajl_tree.h
|
|
129
|
-
- ext/libyajl2/vendored/src/api/yajl_version.h.cmake
|
|
130
|
-
- ext/libyajl2/vendored/src/yajl
|
|
131
|
-
- ext/libyajl2/vendored/src/yajl.c
|
|
132
|
-
- ext/libyajl2/vendored/src/yajl.pc.cmake
|
|
133
|
-
- ext/libyajl2/vendored/src/yajl_alloc.c
|
|
134
|
-
- ext/libyajl2/vendored/src/yajl_alloc.h
|
|
135
|
-
- ext/libyajl2/vendored/src/yajl_buf.c
|
|
136
|
-
- ext/libyajl2/vendored/src/yajl_buf.h
|
|
137
|
-
- ext/libyajl2/vendored/src/yajl_bytestack.h
|
|
138
|
-
- ext/libyajl2/vendored/src/yajl_encode.c
|
|
139
|
-
- ext/libyajl2/vendored/src/yajl_encode.h
|
|
140
|
-
- ext/libyajl2/vendored/src/yajl_gen.c
|
|
141
|
-
- ext/libyajl2/vendored/src/yajl_lex.c
|
|
142
|
-
- ext/libyajl2/vendored/src/yajl_lex.h
|
|
143
|
-
- ext/libyajl2/vendored/src/yajl_parser.c
|
|
144
|
-
- ext/libyajl2/vendored/src/yajl_parser.h
|
|
145
|
-
- ext/libyajl2/vendored/src/yajl_tree.c
|
|
146
|
-
- ext/libyajl2/vendored/src/yajl_version.c
|
|
147
|
-
- ext/libyajl2/vendored/test/CMakeLists.txt
|
|
148
|
-
- ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json
|
|
149
|
-
- ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json.gold
|
|
150
|
-
- ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json
|
|
151
|
-
- ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json.gold
|
|
152
|
-
- ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json
|
|
153
|
-
- ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json.gold
|
|
154
|
-
- ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json
|
|
155
|
-
- ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json.gold
|
|
156
|
-
- ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json
|
|
157
|
-
- ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json.gold
|
|
158
|
-
- ext/libyajl2/vendored/test/cases/am_eof.json
|
|
159
|
-
- ext/libyajl2/vendored/test/cases/am_eof.json.gold
|
|
160
|
-
- ext/libyajl2/vendored/test/cases/am_integers.json
|
|
161
|
-
- ext/libyajl2/vendored/test/cases/am_integers.json.gold
|
|
162
|
-
- ext/libyajl2/vendored/test/cases/am_multiple.json
|
|
163
|
-
- ext/libyajl2/vendored/test/cases/am_multiple.json.gold
|
|
164
|
-
- ext/libyajl2/vendored/test/cases/am_stuff.json
|
|
165
|
-
- ext/libyajl2/vendored/test/cases/am_stuff.json.gold
|
|
166
|
-
- ext/libyajl2/vendored/test/cases/ap_array_open.json
|
|
167
|
-
- ext/libyajl2/vendored/test/cases/ap_array_open.json.gold
|
|
168
|
-
- ext/libyajl2/vendored/test/cases/ap_eof_str.json
|
|
169
|
-
- ext/libyajl2/vendored/test/cases/ap_eof_str.json.gold
|
|
170
|
-
- ext/libyajl2/vendored/test/cases/ap_map_open.json
|
|
171
|
-
- ext/libyajl2/vendored/test/cases/ap_map_open.json.gold
|
|
172
|
-
- ext/libyajl2/vendored/test/cases/ap_partial_ok.json
|
|
173
|
-
- ext/libyajl2/vendored/test/cases/ap_partial_ok.json.gold
|
|
174
|
-
- ext/libyajl2/vendored/test/cases/array.json
|
|
175
|
-
- ext/libyajl2/vendored/test/cases/array.json.gold
|
|
176
|
-
- ext/libyajl2/vendored/test/cases/array_close.json
|
|
177
|
-
- ext/libyajl2/vendored/test/cases/array_close.json.gold
|
|
178
|
-
- ext/libyajl2/vendored/test/cases/bignums.json
|
|
179
|
-
- ext/libyajl2/vendored/test/cases/bignums.json.gold
|
|
180
|
-
- ext/libyajl2/vendored/test/cases/bogus_char.json
|
|
181
|
-
- ext/libyajl2/vendored/test/cases/bogus_char.json.gold
|
|
182
|
-
- ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json
|
|
183
|
-
- ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json.gold
|
|
184
|
-
- ext/libyajl2/vendored/test/cases/deep_arrays.json
|
|
185
|
-
- ext/libyajl2/vendored/test/cases/deep_arrays.json.gold
|
|
186
|
-
- ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json
|
|
187
|
-
- ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json.gold
|
|
188
|
-
- ext/libyajl2/vendored/test/cases/doubles.json
|
|
189
|
-
- ext/libyajl2/vendored/test/cases/doubles.json.gold
|
|
190
|
-
- ext/libyajl2/vendored/test/cases/doubles_in_array.json
|
|
191
|
-
- ext/libyajl2/vendored/test/cases/doubles_in_array.json.gold
|
|
192
|
-
- ext/libyajl2/vendored/test/cases/empty_array.json
|
|
193
|
-
- ext/libyajl2/vendored/test/cases/empty_array.json.gold
|
|
194
|
-
- ext/libyajl2/vendored/test/cases/empty_string.json
|
|
195
|
-
- ext/libyajl2/vendored/test/cases/empty_string.json.gold
|
|
196
|
-
- ext/libyajl2/vendored/test/cases/escaped_bulgarian.json
|
|
197
|
-
- ext/libyajl2/vendored/test/cases/escaped_bulgarian.json.gold
|
|
198
|
-
- ext/libyajl2/vendored/test/cases/escaped_foobar.json
|
|
199
|
-
- ext/libyajl2/vendored/test/cases/escaped_foobar.json.gold
|
|
200
|
-
- ext/libyajl2/vendored/test/cases/false.json
|
|
201
|
-
- ext/libyajl2/vendored/test/cases/false.json.gold
|
|
202
|
-
- ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json
|
|
203
|
-
- ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json.gold
|
|
204
|
-
- ext/libyajl2/vendored/test/cases/fg_issue_7.json
|
|
205
|
-
- ext/libyajl2/vendored/test/cases/fg_issue_7.json.gold
|
|
206
|
-
- ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json
|
|
207
|
-
- ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json.gold
|
|
208
|
-
- ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json
|
|
209
|
-
- ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json.gold
|
|
210
|
-
- ext/libyajl2/vendored/test/cases/four_byte_utf8.json
|
|
211
|
-
- ext/libyajl2/vendored/test/cases/four_byte_utf8.json.gold
|
|
212
|
-
- ext/libyajl2/vendored/test/cases/high_overflow.json
|
|
213
|
-
- ext/libyajl2/vendored/test/cases/high_overflow.json.gold
|
|
214
|
-
- ext/libyajl2/vendored/test/cases/integers.json
|
|
215
|
-
- ext/libyajl2/vendored/test/cases/integers.json.gold
|
|
216
|
-
- ext/libyajl2/vendored/test/cases/invalid_utf8.json
|
|
217
|
-
- ext/libyajl2/vendored/test/cases/invalid_utf8.json.gold
|
|
218
|
-
- ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json
|
|
219
|
-
- ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json.gold
|
|
220
|
-
- ext/libyajl2/vendored/test/cases/leading_zero_in_number.json
|
|
221
|
-
- ext/libyajl2/vendored/test/cases/leading_zero_in_number.json.gold
|
|
222
|
-
- ext/libyajl2/vendored/test/cases/lonely_minus_sign.json
|
|
223
|
-
- ext/libyajl2/vendored/test/cases/lonely_minus_sign.json.gold
|
|
224
|
-
- ext/libyajl2/vendored/test/cases/lonely_number.json
|
|
225
|
-
- ext/libyajl2/vendored/test/cases/lonely_number.json.gold
|
|
226
|
-
- ext/libyajl2/vendored/test/cases/low_overflow.json
|
|
227
|
-
- ext/libyajl2/vendored/test/cases/low_overflow.json.gold
|
|
228
|
-
- ext/libyajl2/vendored/test/cases/map_close.json
|
|
229
|
-
- ext/libyajl2/vendored/test/cases/map_close.json.gold
|
|
230
|
-
- ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json
|
|
231
|
-
- ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json.gold
|
|
232
|
-
- ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json
|
|
233
|
-
- ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json.gold
|
|
234
|
-
- ext/libyajl2/vendored/test/cases/multiple.json
|
|
235
|
-
- ext/libyajl2/vendored/test/cases/multiple.json.gold
|
|
236
|
-
- ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json
|
|
237
|
-
- ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json.gold
|
|
238
|
-
- ext/libyajl2/vendored/test/cases/np_partial_bad.json
|
|
239
|
-
- ext/libyajl2/vendored/test/cases/np_partial_bad.json.gold
|
|
240
|
-
- ext/libyajl2/vendored/test/cases/null.json
|
|
241
|
-
- ext/libyajl2/vendored/test/cases/null.json.gold
|
|
242
|
-
- ext/libyajl2/vendored/test/cases/nulls_and_bools.json
|
|
243
|
-
- ext/libyajl2/vendored/test/cases/nulls_and_bools.json.gold
|
|
244
|
-
- ext/libyajl2/vendored/test/cases/simple.json
|
|
245
|
-
- ext/libyajl2/vendored/test/cases/simple.json.gold
|
|
246
|
-
- ext/libyajl2/vendored/test/cases/simple_with_comments.json
|
|
247
|
-
- ext/libyajl2/vendored/test/cases/simple_with_comments.json.gold
|
|
248
|
-
- ext/libyajl2/vendored/test/cases/string_invalid_escape.json
|
|
249
|
-
- ext/libyajl2/vendored/test/cases/string_invalid_escape.json.gold
|
|
250
|
-
- ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json
|
|
251
|
-
- ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json.gold
|
|
252
|
-
- ext/libyajl2/vendored/test/cases/string_with_escapes.json
|
|
253
|
-
- ext/libyajl2/vendored/test/cases/string_with_escapes.json.gold
|
|
254
|
-
- ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json
|
|
255
|
-
- ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json.gold
|
|
256
|
-
- ext/libyajl2/vendored/test/cases/three_byte_utf8.json
|
|
257
|
-
- ext/libyajl2/vendored/test/cases/three_byte_utf8.json.gold
|
|
258
|
-
- ext/libyajl2/vendored/test/cases/true.json
|
|
259
|
-
- ext/libyajl2/vendored/test/cases/true.json.gold
|
|
260
|
-
- ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json
|
|
261
|
-
- ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json.gold
|
|
262
|
-
- ext/libyajl2/vendored/test/cases/zerobyte.json
|
|
263
|
-
- ext/libyajl2/vendored/test/cases/zerobyte.json.gold
|
|
264
|
-
- ext/libyajl2/vendored/test/run_tests.sh
|
|
265
|
-
- ext/libyajl2/vendored/test/yajl_test.c
|
|
266
|
-
- ext/libyajl2/vendored/verify/CMakeLists.txt
|
|
267
|
-
- ext/libyajl2/vendored/verify/json_verify.c
|
|
268
63
|
- lib/ffi_yajl.rb
|
|
269
64
|
- lib/ffi_yajl/benchmark.rb
|
|
270
65
|
- lib/ffi_yajl/benchmark/MIT-LICENSE
|
|
@@ -292,20 +87,13 @@ files:
|
|
|
292
87
|
- lib/ffi_yajl/ffi.rb
|
|
293
88
|
- lib/ffi_yajl/ffi/encoder.rb
|
|
294
89
|
- lib/ffi_yajl/ffi/parser.rb
|
|
295
|
-
- lib/ffi_yajl/
|
|
90
|
+
- lib/ffi_yajl/map_library_name.rb
|
|
296
91
|
- lib/ffi_yajl/parser.rb
|
|
92
|
+
- lib/ffi_yajl/platform.rb
|
|
297
93
|
- lib/ffi_yajl/version.rb
|
|
298
|
-
|
|
299
|
-
- lib/libyajl.so.2
|
|
300
|
-
- lib/libyajl.so.2.0.5
|
|
301
|
-
- lib/libyajl_s.a
|
|
302
|
-
- spec/ffi_yajl/encoder_spec.rb
|
|
303
|
-
- spec/ffi_yajl/json_gem_spec.rb
|
|
304
|
-
- spec/ffi_yajl/parser_spec.rb
|
|
305
|
-
- spec/spec_helper.rb
|
|
306
|
-
homepage: http://github.com/lamont-granquist/ffi-yajl
|
|
94
|
+
homepage: http://github.com/chef/ffi-yajl
|
|
307
95
|
licenses:
|
|
308
|
-
-
|
|
96
|
+
- MIT
|
|
309
97
|
metadata: {}
|
|
310
98
|
post_install_message:
|
|
311
99
|
rdoc_options: []
|
|
@@ -315,15 +103,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
315
103
|
requirements:
|
|
316
104
|
- - ">="
|
|
317
105
|
- !ruby/object:Gem::Version
|
|
318
|
-
version: '
|
|
106
|
+
version: '3.1'
|
|
319
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
320
108
|
requirements:
|
|
321
109
|
- - ">="
|
|
322
110
|
- !ruby/object:Gem::Version
|
|
323
111
|
version: '0'
|
|
324
112
|
requirements: []
|
|
325
|
-
|
|
326
|
-
rubygems_version: 2.2.0
|
|
113
|
+
rubygems_version: 3.3.27
|
|
327
114
|
signing_key:
|
|
328
115
|
specification_version: 4
|
|
329
116
|
summary: Ruby FFI wrapper around YAJL 2.x
|
data/Rakefile
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
require 'rspec/core/rake_task'
|
|
2
|
-
require 'rubygems/package_task'
|
|
3
|
-
require 'rake/extensiontask'
|
|
4
|
-
|
|
5
|
-
Dir[File.expand_path("../*gemspec", __FILE__)].reverse.each do |gemspec_path|
|
|
6
|
-
gemspec = eval(IO.read(gemspec_path))
|
|
7
|
-
Gem::PackageTask.new(gemspec).define
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
require 'ffi_yajl/version'
|
|
11
|
-
|
|
12
|
-
desc "Run all specs in spec directory"
|
|
13
|
-
RSpec::Core::RakeTask.new(:spec) do |t|
|
|
14
|
-
t.pattern = FileList['spec/**/*_spec.rb']
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
desc "Build it and ship it"
|
|
18
|
-
task :ship => [:clean, :gem] do
|
|
19
|
-
sh("git tag #{Mixlib::ShellOut::VERSION}")
|
|
20
|
-
sh("git push --tags")
|
|
21
|
-
Dir[File.expand_path("../pkg/*.gem", __FILE__)].reverse.each do |built_gem|
|
|
22
|
-
sh("gem push #{built_gem}")
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
unix_gemspec = eval(File.read("ffi-yajl.gemspec"))
|
|
27
|
-
|
|
28
|
-
task :clean do
|
|
29
|
-
sh "rm -rf pkg/* lib/ffi_yajl/ext/*"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
desc "install the gem locally"
|
|
33
|
-
task :install => [:package] do
|
|
34
|
-
if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
|
|
35
|
-
sh %{gem install pkg/#{unix_gemspec.name}-#{unix_gemspec.version}-universal-java.gem}
|
|
36
|
-
else
|
|
37
|
-
sh %{gem install pkg/#{unix_gemspec.name}-#{unix_gemspec.version}.gem}
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
spec = Gem::Specification.load('ffi-yajl.gemspec')
|
|
42
|
-
|
|
43
|
-
Rake::ExtensionTask.new do |ext|
|
|
44
|
-
ext.name = 'libyajl'
|
|
45
|
-
ext.lib_dir = 'lib'
|
|
46
|
-
ext.ext_dir = 'ext/libyajl2'
|
|
47
|
-
ext.gem_spec = spec
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
Rake::ExtensionTask.new do |ext|
|
|
51
|
-
ext.name = 'encoder'
|
|
52
|
-
ext.lib_dir = 'lib/ffi_yajl/ext'
|
|
53
|
-
ext.ext_dir = 'ext/ffi_yajl/ext/encoder'
|
|
54
|
-
ext.gem_spec = spec
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
Rake::ExtensionTask.new do |ext|
|
|
58
|
-
ext.name = 'parser'
|
|
59
|
-
ext.lib_dir = 'lib/ffi_yajl/ext'
|
|
60
|
-
ext.ext_dir = 'ext/ffi_yajl/ext/parser'
|
|
61
|
-
ext.gem_spec = spec
|
|
62
|
-
end
|
data/ext/libyajl2/extconf.rb
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
require 'rbconfig'
|
|
4
|
-
|
|
5
|
-
cflags = ENV['CFLAGS']
|
|
6
|
-
ldflags = ENV['LDFLAGS']
|
|
7
|
-
cc = ENV['CC']
|
|
8
|
-
|
|
9
|
-
# use the CC that ruby was compiled with by default
|
|
10
|
-
cc ||= RbConfig::MAKEFILE_CONFIG['CC']
|
|
11
|
-
cflags ||= ""
|
|
12
|
-
ldflags ||= ""
|
|
13
|
-
|
|
14
|
-
# then ultimately default back to gcc
|
|
15
|
-
cc ||= "gcc"
|
|
16
|
-
|
|
17
|
-
# FIXME: add more compilers with default options
|
|
18
|
-
if cc =~ /gcc|clang/
|
|
19
|
-
cflags << " -O3" unless cflags =~ /-O\d/
|
|
20
|
-
cflags << " -Wall"
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
if !defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
|
|
24
|
-
require 'mkmf'
|
|
25
|
-
|
|
26
|
-
# yajl_complete_parse is only in >= 2.0
|
|
27
|
-
libyajl2_ok = have_library("yajl", "yajl_complete_parse", [ "yajl/yajl_parse.h" ]) && have_func("yajl_complete_parse")
|
|
28
|
-
else
|
|
29
|
-
# always install libyajl2 on Jruby
|
|
30
|
-
# FIXME: get the conditional mkmf stuff to work on Jruby
|
|
31
|
-
libyajl2_ok = false
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
prefix=File.expand_path(File.join(File.dirname(__FILE__), "..", ".."))
|
|
35
|
-
|
|
36
|
-
#dir_config 'libyajl2'
|
|
37
|
-
|
|
38
|
-
if libyajl2_ok
|
|
39
|
-
File.open("Makefile", "w") do |mf|
|
|
40
|
-
mf.puts "# Dummy makefile when we don't build the library"
|
|
41
|
-
mf.puts "all install::\n"
|
|
42
|
-
end
|
|
43
|
-
else
|
|
44
|
-
ENV['CFLAGS'] = cflags
|
|
45
|
-
ENV['LDFLAGS'] = ldflags
|
|
46
|
-
ENV['CC'] = cc
|
|
47
|
-
unless File.exists?("vendored")
|
|
48
|
-
system("pwd")
|
|
49
|
-
puts "FOOOOOOOO: #{__FILE__}"
|
|
50
|
-
system("ls -lad #{File.expand_path(File.join(File.dirname(__FILE__), "vendored"))}")
|
|
51
|
-
end
|
|
52
|
-
system("cp -rf #{File.expand_path(File.join(File.dirname(__FILE__), "vendored"))} .") unless File.exists?("vendored")
|
|
53
|
-
|
|
54
|
-
File.open("Makefile", "w") do |mf|
|
|
55
|
-
mf.puts "# Makefile for building vendored libyajl2"
|
|
56
|
-
mf.puts "CFLAGS = #{ENV['CFLAGS']}"
|
|
57
|
-
mf.puts "LDFLAGS = #{ENV['LDFLAGS']}"
|
|
58
|
-
mf.puts "CC = #{ENV['CC']}\n"
|
|
59
|
-
mf.puts "all install::"
|
|
60
|
-
mf.puts "\tcd vendored && ./configure --prefix=#{prefix}"
|
|
61
|
-
mf.puts "\tcd vendored && make install"
|
|
62
|
-
mf.puts "\tcp -f vendored/build/yajl-2.0.5/lib/libyajl.so .\n"
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
data/ext/libyajl2/vendored/.git
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
gitdir: ../../../.git/modules/ext/libyajl2/vendored
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
Short story (If you already have ruby and cmake):
|
|
2
|
-
|
|
3
|
-
./configure && make install
|
|
4
|
-
|
|
5
|
-
When things go wrong:
|
|
6
|
-
|
|
7
|
-
attain CMake (http://www.cmake.org) and ruby (http://ruby-lang.org) and
|
|
8
|
-
try again.
|
|
9
|
-
|
|
10
|
-
OR, attain CMake and build by hand:
|
|
11
|
-
|
|
12
|
-
1. mkdir build
|
|
13
|
-
2. cd build
|
|
14
|
-
3. cmake ..
|
|
15
|
-
4. make
|
|
16
|
-
5. build output left in yajl-X.Y.Z
|
|
17
|
-
|
|
18
|
-
NOTE: for 64-bit systems where lib64 is used you can pass the cmake
|
|
19
|
-
variable LIB_SUFFIX to cause installation into the system's 'lib64'
|
|
20
|
-
directory.
|
|
21
|
-
|
|
22
|
-
best,
|
|
23
|
-
lloyd
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
YAJL has been successfully built using Visual Studio 8. CMake, a
|
|
2
|
-
build file generator, is used to build the software. CMake supports
|
|
3
|
-
several different build environments, so you may either build YAJL
|
|
4
|
-
using the IDE via the following steps:
|
|
5
|
-
|
|
6
|
-
1. acquire cmake (http://www.cmake.org)
|
|
7
|
-
2. mkdir build
|
|
8
|
-
3. cd build
|
|
9
|
-
4. cmake ..
|
|
10
|
-
5. devenv YetAnotherJSONParser.sln /project ALL_BUILD /build Release
|
|
11
|
-
6. build output is left in build/yajl-X.Y.Z
|
|
12
|
-
|
|
13
|
-
Or you can build from the command line using nmake:
|
|
14
|
-
|
|
15
|
-
1. Click Start > Programs > Microsoft Visual Studio > Visual Studio
|
|
16
|
-
Tools > Visual Studio Command Prompt -- for your version of Visual
|
|
17
|
-
Studio, which will open a command prompt. You may verify that the
|
|
18
|
-
compiler is in your path by typing "cl /?" at the prompt.
|
|
19
|
-
2. cd C:\path\to\yajl\source\
|
|
20
|
-
3. mkdir build
|
|
21
|
-
4. cd build
|
|
22
|
-
5. cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
|
|
23
|
-
6. nmake
|
|
24
|
-
7. nmake install
|
|
25
|
-
|
|
26
|
-
Earlier versions of visual studio and other build generators haven't
|
|
27
|
-
been thoroughly tested, but should work without any major issues.
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2007-2011, Lloyd Hilaiel <lloyd@hilaiel.com>
|
|
2
|
-
#
|
|
3
|
-
# Permission to use, copy, modify, and/or distribute this software for any
|
|
4
|
-
# purpose with or without fee is hereby granted, provided that the above
|
|
5
|
-
# copyright notice and this permission notice appear in all copies.
|
|
6
|
-
#
|
|
7
|
-
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
8
|
-
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
9
|
-
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
10
|
-
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
11
|
-
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
12
|
-
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
13
|
-
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
14
|
-
|
|
15
|
-
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
|
16
|
-
|
|
17
|
-
PROJECT(YetAnotherJSONParser C)
|
|
18
|
-
|
|
19
|
-
SET (YAJL_MAJOR 2)
|
|
20
|
-
SET (YAJL_MINOR 0)
|
|
21
|
-
SET (YAJL_MICRO 5)
|
|
22
|
-
|
|
23
|
-
SET (YAJL_DIST_NAME "yajl-${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO}")
|
|
24
|
-
|
|
25
|
-
IF (NOT CMAKE_BUILD_TYPE)
|
|
26
|
-
SET(CMAKE_BUILD_TYPE "Release")
|
|
27
|
-
ENDIF (NOT CMAKE_BUILD_TYPE)
|
|
28
|
-
|
|
29
|
-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
|
30
|
-
|
|
31
|
-
IF (WIN32)
|
|
32
|
-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
|
|
33
|
-
ADD_DEFINITIONS(-DWIN32)
|
|
34
|
-
SET(linkFlags "/PDB:NONE /INCREMENTAL:NO /OPT:NOREF /OPT:NOICF")
|
|
35
|
-
SET(CMAKE_EXE_LINKER_FLAGS "${linkFlags}"
|
|
36
|
-
CACHE STRING "YAJL linker flags" FORCE)
|
|
37
|
-
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG ""
|
|
38
|
-
CACHE STRING "YAJL debug linker flags" FORCE)
|
|
39
|
-
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE
|
|
40
|
-
CACHE STRING "YAJL release linker flags" FORCE)
|
|
41
|
-
SET(CMAKE_SHARED_LINKER_FLAGS "${linkFlags}"
|
|
42
|
-
CACHE STRING "YAJL shared linker flags" FORCE)
|
|
43
|
-
SET(CMAKE_MODULE_LINKER_FLAGS "${linkFlags}"
|
|
44
|
-
CACHE STRING "YAJL module linker flags" FORCE)
|
|
45
|
-
|
|
46
|
-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996 /wd4255 /wd4130 /wd4100 /wd4711")
|
|
47
|
-
SET(CMAKE_C_FLAGS_DEBUG "/D DEBUG /Od /Z7")
|
|
48
|
-
SET(CMAKE_C_FLAGS_RELEASE "/D NDEBUG /O2")
|
|
49
|
-
ELSE (WIN32)
|
|
50
|
-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
|
51
|
-
IF(CMAKE_COMPILER_IS_GNUCC)
|
|
52
|
-
INCLUDE(CheckCCompilerFlag)
|
|
53
|
-
CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_GCC_VISIBILITY)
|
|
54
|
-
IF(HAVE_GCC_VISIBILITY)
|
|
55
|
-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
|
|
56
|
-
ENDIF(HAVE_GCC_VISIBILITY)
|
|
57
|
-
ENDIF(CMAKE_COMPILER_IS_GNUCC)
|
|
58
|
-
SET(CMAKE_C_FLAGS
|
|
59
|
-
"${CMAKE_C_FLAGS} -std=c99 -pedantic -Wpointer-arith -Wno-format-y2k -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -Wextra -Wundef -Wwrite-strings -Wold-style-definition -Wredundant-decls -Wno-unused-parameter -Wno-sign-compare -Wmissing-prototypes")
|
|
60
|
-
|
|
61
|
-
SET(CMAKE_C_FLAGS_DEBUG "-DDEBUG -g")
|
|
62
|
-
SET(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O2 -Wuninitialized")
|
|
63
|
-
ENDIF (WIN32)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
ADD_SUBDIRECTORY(src)
|
|
67
|
-
ADD_SUBDIRECTORY(test)
|
|
68
|
-
ADD_SUBDIRECTORY(reformatter)
|
|
69
|
-
ADD_SUBDIRECTORY(verify)
|
|
70
|
-
ADD_SUBDIRECTORY(example)
|
|
71
|
-
ADD_SUBDIRECTORY(perf)
|
|
72
|
-
|
|
73
|
-
INCLUDE(YAJLDoc.cmake)
|
|
74
|
-
|
|
75
|
-
# a test target
|
|
76
|
-
ADD_CUSTOM_TARGET(test
|
|
77
|
-
./run_tests.sh ${CMAKE_CURRENT_BINARY_DIR}/test/yajl_test
|
|
78
|
-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test)
|
|
79
|
-
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2007-2011, Lloyd Hilaiel <lloyd@hilaiel.com>
|
|
2
|
-
|
|
3
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
4
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
5
|
-
copyright notice and this permission notice appear in all copies.
|
|
6
|
-
|
|
7
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
8
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
9
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
10
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
11
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
12
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
13
|
-
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|