ffi-yajl 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (214) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/README.md +17 -0
  4. data/Rakefile +62 -0
  5. data/bin/ffi-yajl-bench +36 -0
  6. data/ext/ffi_yajl/ext/encoder/encoder.c +240 -0
  7. data/ext/ffi_yajl/ext/encoder/extconf.rb +29 -0
  8. data/ext/ffi_yajl/ext/parser/extconf.rb +29 -0
  9. data/ext/ffi_yajl/ext/parser/parser.c +199 -0
  10. data/ext/libyajl2/extconf.rb +65 -0
  11. data/ext/libyajl2/vendored/.gitignore +3 -0
  12. data/ext/libyajl2/vendored/BUILDING +23 -0
  13. data/ext/libyajl2/vendored/BUILDING.win32 +27 -0
  14. data/ext/libyajl2/vendored/CMakeLists.txt +79 -0
  15. data/ext/libyajl2/vendored/COPYING +13 -0
  16. data/ext/libyajl2/vendored/ChangeLog +175 -0
  17. data/ext/libyajl2/vendored/README +74 -0
  18. data/ext/libyajl2/vendored/TODO +9 -0
  19. data/ext/libyajl2/vendored/YAJLDoc.cmake +26 -0
  20. data/ext/libyajl2/vendored/configure +79 -0
  21. data/ext/libyajl2/vendored/example/CMakeLists.txt +23 -0
  22. data/ext/libyajl2/vendored/example/README.md +7 -0
  23. data/ext/libyajl2/vendored/example/parse_config.c +69 -0
  24. data/ext/libyajl2/vendored/example/sample.config +101 -0
  25. data/ext/libyajl2/vendored/perf/CMakeLists.txt +23 -0
  26. data/ext/libyajl2/vendored/perf/documents.c +1418 -0
  27. data/ext/libyajl2/vendored/perf/documents.h +28 -0
  28. data/ext/libyajl2/vendored/perf/perftest.c +134 -0
  29. data/ext/libyajl2/vendored/reformatter/CMakeLists.txt +39 -0
  30. data/ext/libyajl2/vendored/reformatter/json_reformat.c +194 -0
  31. data/ext/libyajl2/vendored/src/CMakeLists.txt +86 -0
  32. data/ext/libyajl2/vendored/src/YAJL.dxy +1258 -0
  33. data/ext/libyajl2/vendored/src/api/yajl_common.h +75 -0
  34. data/ext/libyajl2/vendored/src/api/yajl_gen.h +157 -0
  35. data/ext/libyajl2/vendored/src/api/yajl_parse.h +226 -0
  36. data/ext/libyajl2/vendored/src/api/yajl_tree.h +185 -0
  37. data/ext/libyajl2/vendored/src/api/yajl_version.h.cmake +23 -0
  38. data/ext/libyajl2/vendored/src/yajl +33 -0
  39. data/ext/libyajl2/vendored/src/yajl.c +175 -0
  40. data/ext/libyajl2/vendored/src/yajl.pc.cmake +9 -0
  41. data/ext/libyajl2/vendored/src/yajl_alloc.c +52 -0
  42. data/ext/libyajl2/vendored/src/yajl_alloc.h +34 -0
  43. data/ext/libyajl2/vendored/src/yajl_buf.c +103 -0
  44. data/ext/libyajl2/vendored/src/yajl_buf.h +57 -0
  45. data/ext/libyajl2/vendored/src/yajl_bytestack.h +69 -0
  46. data/ext/libyajl2/vendored/src/yajl_encode.c +220 -0
  47. data/ext/libyajl2/vendored/src/yajl_encode.h +34 -0
  48. data/ext/libyajl2/vendored/src/yajl_gen.c +354 -0
  49. data/ext/libyajl2/vendored/src/yajl_lex.c +763 -0
  50. data/ext/libyajl2/vendored/src/yajl_lex.h +117 -0
  51. data/ext/libyajl2/vendored/src/yajl_parser.c +498 -0
  52. data/ext/libyajl2/vendored/src/yajl_parser.h +78 -0
  53. data/ext/libyajl2/vendored/src/yajl_tree.c +503 -0
  54. data/ext/libyajl2/vendored/src/yajl_version.c +7 -0
  55. data/ext/libyajl2/vendored/test/CMakeLists.txt +23 -0
  56. data/ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json +1 -0
  57. data/ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json.gold +36 -0
  58. data/ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json +11 -0
  59. data/ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json.gold +9 -0
  60. data/ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json +1 -0
  61. data/ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json.gold +2 -0
  62. data/ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json +1 -0
  63. data/ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json.gold +2 -0
  64. data/ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json +1 -0
  65. data/ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json.gold +2 -0
  66. data/ext/libyajl2/vendored/test/cases/am_eof.json +1 -0
  67. data/ext/libyajl2/vendored/test/cases/am_eof.json.gold +4 -0
  68. data/ext/libyajl2/vendored/test/cases/am_integers.json +1 -0
  69. data/ext/libyajl2/vendored/test/cases/am_integers.json.gold +3 -0
  70. data/ext/libyajl2/vendored/test/cases/am_multiple.json +3 -0
  71. data/ext/libyajl2/vendored/test/cases/am_multiple.json.gold +5 -0
  72. data/ext/libyajl2/vendored/test/cases/am_stuff.json +7 -0
  73. data/ext/libyajl2/vendored/test/cases/am_stuff.json.gold +14 -0
  74. data/ext/libyajl2/vendored/test/cases/ap_array_open.json +1 -0
  75. data/ext/libyajl2/vendored/test/cases/ap_array_open.json.gold +2 -0
  76. data/ext/libyajl2/vendored/test/cases/ap_eof_str.json +1 -0
  77. data/ext/libyajl2/vendored/test/cases/ap_eof_str.json.gold +1 -0
  78. data/ext/libyajl2/vendored/test/cases/ap_map_open.json +1 -0
  79. data/ext/libyajl2/vendored/test/cases/ap_map_open.json.gold +2 -0
  80. data/ext/libyajl2/vendored/test/cases/ap_partial_ok.json +1 -0
  81. data/ext/libyajl2/vendored/test/cases/ap_partial_ok.json.gold +4 -0
  82. data/ext/libyajl2/vendored/test/cases/array.json +6 -0
  83. data/ext/libyajl2/vendored/test/cases/array.json.gold +22 -0
  84. data/ext/libyajl2/vendored/test/cases/array_close.json +1 -0
  85. data/ext/libyajl2/vendored/test/cases/array_close.json.gold +2 -0
  86. data/ext/libyajl2/vendored/test/cases/bignums.json +1 -0
  87. data/ext/libyajl2/vendored/test/cases/bignums.json.gold +5 -0
  88. data/ext/libyajl2/vendored/test/cases/bogus_char.json +4 -0
  89. data/ext/libyajl2/vendored/test/cases/bogus_char.json.gold +10 -0
  90. data/ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json +1 -0
  91. data/ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json.gold +2 -0
  92. data/ext/libyajl2/vendored/test/cases/deep_arrays.json +1 -0
  93. data/ext/libyajl2/vendored/test/cases/deep_arrays.json.gold +2049 -0
  94. data/ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json +1 -0
  95. data/ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json.gold +36 -0
  96. data/ext/libyajl2/vendored/test/cases/doubles.json +1 -0
  97. data/ext/libyajl2/vendored/test/cases/doubles.json.gold +7 -0
  98. data/ext/libyajl2/vendored/test/cases/doubles_in_array.json +1 -0
  99. data/ext/libyajl2/vendored/test/cases/doubles_in_array.json.gold +8 -0
  100. data/ext/libyajl2/vendored/test/cases/empty_array.json +1 -0
  101. data/ext/libyajl2/vendored/test/cases/empty_array.json.gold +3 -0
  102. data/ext/libyajl2/vendored/test/cases/empty_string.json +1 -0
  103. data/ext/libyajl2/vendored/test/cases/empty_string.json.gold +2 -0
  104. data/ext/libyajl2/vendored/test/cases/escaped_bulgarian.json +4 -0
  105. data/ext/libyajl2/vendored/test/cases/escaped_bulgarian.json.gold +7 -0
  106. data/ext/libyajl2/vendored/test/cases/escaped_foobar.json +1 -0
  107. data/ext/libyajl2/vendored/test/cases/escaped_foobar.json.gold +2 -0
  108. data/ext/libyajl2/vendored/test/cases/false.json +1 -0
  109. data/ext/libyajl2/vendored/test/cases/false.json.gold +2 -0
  110. data/ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json +1 -0
  111. data/ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json.gold +3 -0
  112. data/ext/libyajl2/vendored/test/cases/fg_issue_7.json +1 -0
  113. data/ext/libyajl2/vendored/test/cases/fg_issue_7.json.gold +3 -0
  114. data/ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json +1 -0
  115. data/ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json.gold +3 -0
  116. data/ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json +1 -0
  117. data/ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json.gold +3 -0
  118. data/ext/libyajl2/vendored/test/cases/four_byte_utf8.json +2 -0
  119. data/ext/libyajl2/vendored/test/cases/four_byte_utf8.json.gold +5 -0
  120. data/ext/libyajl2/vendored/test/cases/high_overflow.json +1 -0
  121. data/ext/libyajl2/vendored/test/cases/high_overflow.json.gold +2 -0
  122. data/ext/libyajl2/vendored/test/cases/integers.json +3 -0
  123. data/ext/libyajl2/vendored/test/cases/integers.json.gold +14 -0
  124. data/ext/libyajl2/vendored/test/cases/invalid_utf8.json +1 -0
  125. data/ext/libyajl2/vendored/test/cases/invalid_utf8.json.gold +3 -0
  126. data/ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json +1 -0
  127. data/ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json.gold +2 -0
  128. data/ext/libyajl2/vendored/test/cases/leading_zero_in_number.json +1 -0
  129. data/ext/libyajl2/vendored/test/cases/leading_zero_in_number.json.gold +5 -0
  130. data/ext/libyajl2/vendored/test/cases/lonely_minus_sign.json +7 -0
  131. data/ext/libyajl2/vendored/test/cases/lonely_minus_sign.json.gold +9 -0
  132. data/ext/libyajl2/vendored/test/cases/lonely_number.json +1 -0
  133. data/ext/libyajl2/vendored/test/cases/lonely_number.json.gold +2 -0
  134. data/ext/libyajl2/vendored/test/cases/low_overflow.json +1 -0
  135. data/ext/libyajl2/vendored/test/cases/low_overflow.json.gold +2 -0
  136. data/ext/libyajl2/vendored/test/cases/map_close.json +1 -0
  137. data/ext/libyajl2/vendored/test/cases/map_close.json.gold +2 -0
  138. data/ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json +1 -0
  139. data/ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json.gold +2 -0
  140. data/ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json +1 -0
  141. data/ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json.gold +2 -0
  142. data/ext/libyajl2/vendored/test/cases/multiple.json +3 -0
  143. data/ext/libyajl2/vendored/test/cases/multiple.json.gold +4 -0
  144. data/ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json +1 -0
  145. data/ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json.gold +8 -0
  146. data/ext/libyajl2/vendored/test/cases/np_partial_bad.json +1 -0
  147. data/ext/libyajl2/vendored/test/cases/np_partial_bad.json.gold +5 -0
  148. data/ext/libyajl2/vendored/test/cases/null.json +1 -0
  149. data/ext/libyajl2/vendored/test/cases/null.json.gold +2 -0
  150. data/ext/libyajl2/vendored/test/cases/nulls_and_bools.json +5 -0
  151. data/ext/libyajl2/vendored/test/cases/nulls_and_bools.json.gold +9 -0
  152. data/ext/libyajl2/vendored/test/cases/simple.json +5 -0
  153. data/ext/libyajl2/vendored/test/cases/simple.json.gold +9 -0
  154. data/ext/libyajl2/vendored/test/cases/simple_with_comments.json +11 -0
  155. data/ext/libyajl2/vendored/test/cases/simple_with_comments.json.gold +5 -0
  156. data/ext/libyajl2/vendored/test/cases/string_invalid_escape.json +1 -0
  157. data/ext/libyajl2/vendored/test/cases/string_invalid_escape.json.gold +3 -0
  158. data/ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json +1 -0
  159. data/ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json.gold +2 -0
  160. data/ext/libyajl2/vendored/test/cases/string_with_escapes.json +3 -0
  161. data/ext/libyajl2/vendored/test/cases/string_with_escapes.json.gold +7 -0
  162. data/ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json +2 -0
  163. data/ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json.gold +2 -0
  164. data/ext/libyajl2/vendored/test/cases/three_byte_utf8.json +1 -0
  165. data/ext/libyajl2/vendored/test/cases/three_byte_utf8.json.gold +7 -0
  166. data/ext/libyajl2/vendored/test/cases/true.json +1 -0
  167. data/ext/libyajl2/vendored/test/cases/true.json.gold +2 -0
  168. data/ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json +1 -0
  169. data/ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json.gold +4 -0
  170. data/ext/libyajl2/vendored/test/cases/zerobyte.json +1 -0
  171. data/ext/libyajl2/vendored/test/cases/zerobyte.json.gold +0 -0
  172. data/ext/libyajl2/vendored/test/run_tests.sh +94 -0
  173. data/ext/libyajl2/vendored/test/yajl_test.c +281 -0
  174. data/ext/libyajl2/vendored/verify/CMakeLists.txt +39 -0
  175. data/ext/libyajl2/vendored/verify/json_verify.c +116 -0
  176. data/lib/ffi_yajl.rb +14 -0
  177. data/lib/ffi_yajl/benchmark.rb +7 -0
  178. data/lib/ffi_yajl/benchmark/MIT-LICENSE +20 -0
  179. data/lib/ffi_yajl/benchmark/encode.rb +135 -0
  180. data/lib/ffi_yajl/benchmark/encode_json_and_marshal.rb +42 -0
  181. data/lib/ffi_yajl/benchmark/encode_json_and_yaml.rb +53 -0
  182. data/lib/ffi_yajl/benchmark/encode_profile.rb +38 -0
  183. data/lib/ffi_yajl/benchmark/http.rb +32 -0
  184. data/lib/ffi_yajl/benchmark/parse.rb +133 -0
  185. data/lib/ffi_yajl/benchmark/parse_json_and_marshal.rb +50 -0
  186. data/lib/ffi_yajl/benchmark/parse_json_and_yaml.rb +55 -0
  187. data/lib/ffi_yajl/benchmark/parse_profile.rb +37 -0
  188. data/lib/ffi_yajl/benchmark/parse_profile_ruby_prof.rb +39 -0
  189. data/lib/ffi_yajl/benchmark/parse_stream.rb +54 -0
  190. data/lib/ffi_yajl/benchmark/subjects/item.json +1 -0
  191. data/lib/ffi_yajl/benchmark/subjects/ohai.json +1216 -0
  192. data/lib/ffi_yajl/benchmark/subjects/ohai.marshal_dump +0 -0
  193. data/lib/ffi_yajl/benchmark/subjects/ohai.yml +975 -0
  194. data/lib/ffi_yajl/benchmark/subjects/twitter_search.json +1 -0
  195. data/lib/ffi_yajl/benchmark/subjects/twitter_stream.json +430 -0
  196. data/lib/ffi_yajl/benchmark/subjects/unicode.json +1 -0
  197. data/lib/ffi_yajl/encoder.rb +53 -0
  198. data/lib/ffi_yajl/ext.rb +22 -0
  199. data/lib/ffi_yajl/ext/.keep +0 -0
  200. data/lib/ffi_yajl/ffi.rb +129 -0
  201. data/lib/ffi_yajl/ffi/encoder.rb +175 -0
  202. data/lib/ffi_yajl/ffi/parser.rb +145 -0
  203. data/lib/ffi_yajl/json_gem.rb +121 -0
  204. data/lib/ffi_yajl/parser.rb +23 -0
  205. data/lib/ffi_yajl/version.rb +3 -0
  206. data/lib/libyajl.so +0 -0
  207. data/lib/libyajl.so.2 +0 -0
  208. data/lib/libyajl.so.2.0.5 +0 -0
  209. data/lib/libyajl_s.a +0 -0
  210. data/spec/ffi_yajl/encoder_spec.rb +39 -0
  211. data/spec/ffi_yajl/json_gem_spec.rb +355 -0
  212. data/spec/ffi_yajl/parser_spec.rb +78 -0
  213. data/spec/spec_helper.rb +14 -0
  214. metadata +332 -0
@@ -0,0 +1,78 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "FFI_Yajl::Parser" do
6
+
7
+ let(:parser) { FFI_Yajl::Parser.new }
8
+
9
+ it "throws an exception when trailing braces are missing" do
10
+ json = '{{"foo": 1234}'
11
+ expect { parser.parse(json) }.to raise_error(FFI_Yajl::ParseError)
12
+ end
13
+
14
+ it "throws an exception when trailing brackets are missing" do
15
+ json = '[["foo", "bar"]'
16
+ expect { parser.parse(json) }.to raise_error(FFI_Yajl::ParseError)
17
+ end
18
+
19
+ it "throws an exception when it has an extra brace" do
20
+ json = '{{"foo": 1234}}}'
21
+ expect { parser.parse(json) }.to raise_error(FFI_Yajl::ParseError)
22
+ end
23
+
24
+ it "throws an exception when it has an extra bracket" do
25
+ json = '[["foo", "bar"]]]'
26
+ expect { parser.parse(json) }.to raise_error(FFI_Yajl::ParseError)
27
+ end
28
+
29
+ context "when parsing floats" do
30
+ it "parses simple floating point values" do
31
+ json = '{"foo": 3.14159265358979}'
32
+ expect(parser.parse(json)).to eql({"foo" => 3.14159265358979})
33
+ end
34
+
35
+ it "parses simple negative floating point values" do
36
+ json = '{"foo":-2.00231930436153}'
37
+ expect(parser.parse(json)).to eql({"foo" => -2.00231930436153})
38
+ end
39
+
40
+ it "parses floats with negative exponents and a large E" do
41
+ json = '{"foo": 1.602176565E-19}'
42
+ expect(parser.parse(json)).to eql({"foo" => 1.602176565e-19})
43
+ end
44
+
45
+ it "parses floats with negative exponents and a small e" do
46
+ json = '{"foo": 6.6260689633e-34 }'
47
+ expect(parser.parse(json)).to eql({"foo" => 6.6260689633e-34 })
48
+ end
49
+
50
+ it "parses floats with positive exponents and a large E" do
51
+ json = '{"foo": 6.0221413E+23}'
52
+ expect(parser.parse(json)).to eql({"foo" => 6.0221413e+23})
53
+ end
54
+
55
+ it "parses floats with positive exponents and a small e" do
56
+ json = '{"foo": 8.9875517873681764e+9 }'
57
+ expect(parser.parse(json)).to eql({"foo" => 8.9875517873681764e+9 })
58
+ end
59
+
60
+ it "parses floats with an exponent without a sign and a large E" do
61
+ json = '{"foo": 2.99792458E8 }'
62
+ expect(parser.parse(json)).to eql({"foo" => 2.99792458e+8 })
63
+ end
64
+
65
+ it "parses floats with an exponent without a sign and a small e" do
66
+ json = '{"foo": 1.0973731568539e7 }'
67
+ expect(parser.parse(json)).to eql({"foo" => 1.0973731568539e+7 })
68
+ end
69
+ end
70
+
71
+ context "when parsing unicode in hash keys" do
72
+ it "handles heavy metal umlauts in keys" do
73
+ json = '{"München": "Bayern"}'
74
+ expect(parser.parse(json)).to eql({"München" => "Bayern"})
75
+ end
76
+ end
77
+ end
78
+
@@ -0,0 +1,14 @@
1
+ $: << File.expand_path(File.join(File.dirname( __FILE__ ), "../lib"))
2
+
3
+ require 'ffi_yajl'
4
+
5
+ RSpec.configure do |c|
6
+ c.filter_run_excluding :ruby_gte_19 => true unless RUBY_VERSION.to_f >= 1.9
7
+
8
+ c.order = 'random'
9
+
10
+ c.expect_with :rspec do |c|
11
+ c.syntax = :expect
12
+ end
13
+
14
+ end
metadata ADDED
@@ -0,0 +1,332 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ffi-yajl
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Lamont Granquist
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-01-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
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
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.9'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.9'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake-compiler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.9'
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'
83
+ description: Ruby FFI wrapper around YAJL 2.x
84
+ email: lamont@scriptkiddie.org
85
+ executables:
86
+ - ffi-yajl-bench
87
+ extensions:
88
+ - ext/libyajl2/extconf.rb
89
+ - ext/ffi_yajl/ext/encoder/extconf.rb
90
+ - ext/ffi_yajl/ext/parser/extconf.rb
91
+ extra_rdoc_files:
92
+ - README.md
93
+ - LICENSE
94
+ files:
95
+ - LICENSE
96
+ - README.md
97
+ - Rakefile
98
+ - bin/ffi-yajl-bench
99
+ - ext/ffi_yajl/ext/encoder/encoder.c
100
+ - ext/ffi_yajl/ext/encoder/extconf.rb
101
+ - ext/ffi_yajl/ext/parser/extconf.rb
102
+ - ext/ffi_yajl/ext/parser/parser.c
103
+ - ext/libyajl2/extconf.rb
104
+ - ext/libyajl2/vendored/.git
105
+ - ext/libyajl2/vendored/.gitignore
106
+ - ext/libyajl2/vendored/BUILDING
107
+ - ext/libyajl2/vendored/BUILDING.win32
108
+ - ext/libyajl2/vendored/CMakeLists.txt
109
+ - ext/libyajl2/vendored/COPYING
110
+ - ext/libyajl2/vendored/ChangeLog
111
+ - ext/libyajl2/vendored/README
112
+ - ext/libyajl2/vendored/TODO
113
+ - ext/libyajl2/vendored/YAJLDoc.cmake
114
+ - ext/libyajl2/vendored/configure
115
+ - ext/libyajl2/vendored/example/CMakeLists.txt
116
+ - ext/libyajl2/vendored/example/README.md
117
+ - ext/libyajl2/vendored/example/parse_config.c
118
+ - ext/libyajl2/vendored/example/sample.config
119
+ - ext/libyajl2/vendored/perf/CMakeLists.txt
120
+ - ext/libyajl2/vendored/perf/documents.c
121
+ - ext/libyajl2/vendored/perf/documents.h
122
+ - ext/libyajl2/vendored/perf/perftest.c
123
+ - ext/libyajl2/vendored/reformatter/CMakeLists.txt
124
+ - ext/libyajl2/vendored/reformatter/json_reformat.c
125
+ - ext/libyajl2/vendored/src/CMakeLists.txt
126
+ - ext/libyajl2/vendored/src/YAJL.dxy
127
+ - ext/libyajl2/vendored/src/api/yajl_common.h
128
+ - ext/libyajl2/vendored/src/api/yajl_gen.h
129
+ - ext/libyajl2/vendored/src/api/yajl_parse.h
130
+ - ext/libyajl2/vendored/src/api/yajl_tree.h
131
+ - ext/libyajl2/vendored/src/api/yajl_version.h.cmake
132
+ - ext/libyajl2/vendored/src/yajl
133
+ - ext/libyajl2/vendored/src/yajl.c
134
+ - ext/libyajl2/vendored/src/yajl.pc.cmake
135
+ - ext/libyajl2/vendored/src/yajl_alloc.c
136
+ - ext/libyajl2/vendored/src/yajl_alloc.h
137
+ - ext/libyajl2/vendored/src/yajl_buf.c
138
+ - ext/libyajl2/vendored/src/yajl_buf.h
139
+ - ext/libyajl2/vendored/src/yajl_bytestack.h
140
+ - ext/libyajl2/vendored/src/yajl_encode.c
141
+ - ext/libyajl2/vendored/src/yajl_encode.h
142
+ - ext/libyajl2/vendored/src/yajl_gen.c
143
+ - ext/libyajl2/vendored/src/yajl_lex.c
144
+ - ext/libyajl2/vendored/src/yajl_lex.h
145
+ - ext/libyajl2/vendored/src/yajl_parser.c
146
+ - ext/libyajl2/vendored/src/yajl_parser.h
147
+ - ext/libyajl2/vendored/src/yajl_tree.c
148
+ - ext/libyajl2/vendored/src/yajl_version.c
149
+ - ext/libyajl2/vendored/test/CMakeLists.txt
150
+ - ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json
151
+ - ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json.gold
152
+ - ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json
153
+ - ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json.gold
154
+ - ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json
155
+ - ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json.gold
156
+ - ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json
157
+ - ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json.gold
158
+ - ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json
159
+ - ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json.gold
160
+ - ext/libyajl2/vendored/test/cases/am_eof.json
161
+ - ext/libyajl2/vendored/test/cases/am_eof.json.gold
162
+ - ext/libyajl2/vendored/test/cases/am_integers.json
163
+ - ext/libyajl2/vendored/test/cases/am_integers.json.gold
164
+ - ext/libyajl2/vendored/test/cases/am_multiple.json
165
+ - ext/libyajl2/vendored/test/cases/am_multiple.json.gold
166
+ - ext/libyajl2/vendored/test/cases/am_stuff.json
167
+ - ext/libyajl2/vendored/test/cases/am_stuff.json.gold
168
+ - ext/libyajl2/vendored/test/cases/ap_array_open.json
169
+ - ext/libyajl2/vendored/test/cases/ap_array_open.json.gold
170
+ - ext/libyajl2/vendored/test/cases/ap_eof_str.json
171
+ - ext/libyajl2/vendored/test/cases/ap_eof_str.json.gold
172
+ - ext/libyajl2/vendored/test/cases/ap_map_open.json
173
+ - ext/libyajl2/vendored/test/cases/ap_map_open.json.gold
174
+ - ext/libyajl2/vendored/test/cases/ap_partial_ok.json
175
+ - ext/libyajl2/vendored/test/cases/ap_partial_ok.json.gold
176
+ - ext/libyajl2/vendored/test/cases/array.json
177
+ - ext/libyajl2/vendored/test/cases/array.json.gold
178
+ - ext/libyajl2/vendored/test/cases/array_close.json
179
+ - ext/libyajl2/vendored/test/cases/array_close.json.gold
180
+ - ext/libyajl2/vendored/test/cases/bignums.json
181
+ - ext/libyajl2/vendored/test/cases/bignums.json.gold
182
+ - ext/libyajl2/vendored/test/cases/bogus_char.json
183
+ - ext/libyajl2/vendored/test/cases/bogus_char.json.gold
184
+ - ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json
185
+ - ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json.gold
186
+ - ext/libyajl2/vendored/test/cases/deep_arrays.json
187
+ - ext/libyajl2/vendored/test/cases/deep_arrays.json.gold
188
+ - ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json
189
+ - ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json.gold
190
+ - ext/libyajl2/vendored/test/cases/doubles.json
191
+ - ext/libyajl2/vendored/test/cases/doubles.json.gold
192
+ - ext/libyajl2/vendored/test/cases/doubles_in_array.json
193
+ - ext/libyajl2/vendored/test/cases/doubles_in_array.json.gold
194
+ - ext/libyajl2/vendored/test/cases/empty_array.json
195
+ - ext/libyajl2/vendored/test/cases/empty_array.json.gold
196
+ - ext/libyajl2/vendored/test/cases/empty_string.json
197
+ - ext/libyajl2/vendored/test/cases/empty_string.json.gold
198
+ - ext/libyajl2/vendored/test/cases/escaped_bulgarian.json
199
+ - ext/libyajl2/vendored/test/cases/escaped_bulgarian.json.gold
200
+ - ext/libyajl2/vendored/test/cases/escaped_foobar.json
201
+ - ext/libyajl2/vendored/test/cases/escaped_foobar.json.gold
202
+ - ext/libyajl2/vendored/test/cases/false.json
203
+ - ext/libyajl2/vendored/test/cases/false.json.gold
204
+ - ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json
205
+ - ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json.gold
206
+ - ext/libyajl2/vendored/test/cases/fg_issue_7.json
207
+ - ext/libyajl2/vendored/test/cases/fg_issue_7.json.gold
208
+ - ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json
209
+ - ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json.gold
210
+ - ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json
211
+ - ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json.gold
212
+ - ext/libyajl2/vendored/test/cases/four_byte_utf8.json
213
+ - ext/libyajl2/vendored/test/cases/four_byte_utf8.json.gold
214
+ - ext/libyajl2/vendored/test/cases/high_overflow.json
215
+ - ext/libyajl2/vendored/test/cases/high_overflow.json.gold
216
+ - ext/libyajl2/vendored/test/cases/integers.json
217
+ - ext/libyajl2/vendored/test/cases/integers.json.gold
218
+ - ext/libyajl2/vendored/test/cases/invalid_utf8.json
219
+ - ext/libyajl2/vendored/test/cases/invalid_utf8.json.gold
220
+ - ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json
221
+ - ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json.gold
222
+ - ext/libyajl2/vendored/test/cases/leading_zero_in_number.json
223
+ - ext/libyajl2/vendored/test/cases/leading_zero_in_number.json.gold
224
+ - ext/libyajl2/vendored/test/cases/lonely_minus_sign.json
225
+ - ext/libyajl2/vendored/test/cases/lonely_minus_sign.json.gold
226
+ - ext/libyajl2/vendored/test/cases/lonely_number.json
227
+ - ext/libyajl2/vendored/test/cases/lonely_number.json.gold
228
+ - ext/libyajl2/vendored/test/cases/low_overflow.json
229
+ - ext/libyajl2/vendored/test/cases/low_overflow.json.gold
230
+ - ext/libyajl2/vendored/test/cases/map_close.json
231
+ - ext/libyajl2/vendored/test/cases/map_close.json.gold
232
+ - ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json
233
+ - ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json.gold
234
+ - ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json
235
+ - ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json.gold
236
+ - ext/libyajl2/vendored/test/cases/multiple.json
237
+ - ext/libyajl2/vendored/test/cases/multiple.json.gold
238
+ - ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json
239
+ - ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json.gold
240
+ - ext/libyajl2/vendored/test/cases/np_partial_bad.json
241
+ - ext/libyajl2/vendored/test/cases/np_partial_bad.json.gold
242
+ - ext/libyajl2/vendored/test/cases/null.json
243
+ - ext/libyajl2/vendored/test/cases/null.json.gold
244
+ - ext/libyajl2/vendored/test/cases/nulls_and_bools.json
245
+ - ext/libyajl2/vendored/test/cases/nulls_and_bools.json.gold
246
+ - ext/libyajl2/vendored/test/cases/simple.json
247
+ - ext/libyajl2/vendored/test/cases/simple.json.gold
248
+ - ext/libyajl2/vendored/test/cases/simple_with_comments.json
249
+ - ext/libyajl2/vendored/test/cases/simple_with_comments.json.gold
250
+ - ext/libyajl2/vendored/test/cases/string_invalid_escape.json
251
+ - ext/libyajl2/vendored/test/cases/string_invalid_escape.json.gold
252
+ - ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json
253
+ - ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json.gold
254
+ - ext/libyajl2/vendored/test/cases/string_with_escapes.json
255
+ - ext/libyajl2/vendored/test/cases/string_with_escapes.json.gold
256
+ - ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json
257
+ - ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json.gold
258
+ - ext/libyajl2/vendored/test/cases/three_byte_utf8.json
259
+ - ext/libyajl2/vendored/test/cases/three_byte_utf8.json.gold
260
+ - ext/libyajl2/vendored/test/cases/true.json
261
+ - ext/libyajl2/vendored/test/cases/true.json.gold
262
+ - ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json
263
+ - ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json.gold
264
+ - ext/libyajl2/vendored/test/cases/zerobyte.json
265
+ - ext/libyajl2/vendored/test/cases/zerobyte.json.gold
266
+ - ext/libyajl2/vendored/test/run_tests.sh
267
+ - ext/libyajl2/vendored/test/yajl_test.c
268
+ - ext/libyajl2/vendored/verify/CMakeLists.txt
269
+ - ext/libyajl2/vendored/verify/json_verify.c
270
+ - lib/ffi_yajl.rb
271
+ - lib/ffi_yajl/benchmark.rb
272
+ - lib/ffi_yajl/benchmark/MIT-LICENSE
273
+ - lib/ffi_yajl/benchmark/encode.rb
274
+ - lib/ffi_yajl/benchmark/encode_json_and_marshal.rb
275
+ - lib/ffi_yajl/benchmark/encode_json_and_yaml.rb
276
+ - lib/ffi_yajl/benchmark/encode_profile.rb
277
+ - lib/ffi_yajl/benchmark/http.rb
278
+ - lib/ffi_yajl/benchmark/parse.rb
279
+ - lib/ffi_yajl/benchmark/parse_json_and_marshal.rb
280
+ - lib/ffi_yajl/benchmark/parse_json_and_yaml.rb
281
+ - lib/ffi_yajl/benchmark/parse_profile.rb
282
+ - lib/ffi_yajl/benchmark/parse_profile_ruby_prof.rb
283
+ - lib/ffi_yajl/benchmark/parse_stream.rb
284
+ - lib/ffi_yajl/benchmark/subjects/item.json
285
+ - lib/ffi_yajl/benchmark/subjects/ohai.json
286
+ - lib/ffi_yajl/benchmark/subjects/ohai.marshal_dump
287
+ - lib/ffi_yajl/benchmark/subjects/ohai.yml
288
+ - lib/ffi_yajl/benchmark/subjects/twitter_search.json
289
+ - lib/ffi_yajl/benchmark/subjects/twitter_stream.json
290
+ - lib/ffi_yajl/benchmark/subjects/unicode.json
291
+ - lib/ffi_yajl/encoder.rb
292
+ - lib/ffi_yajl/ext.rb
293
+ - lib/ffi_yajl/ext/.keep
294
+ - lib/ffi_yajl/ffi.rb
295
+ - lib/ffi_yajl/ffi/encoder.rb
296
+ - lib/ffi_yajl/ffi/parser.rb
297
+ - lib/ffi_yajl/json_gem.rb
298
+ - lib/ffi_yajl/parser.rb
299
+ - lib/ffi_yajl/version.rb
300
+ - lib/libyajl.so
301
+ - lib/libyajl.so.2
302
+ - lib/libyajl.so.2.0.5
303
+ - lib/libyajl_s.a
304
+ - spec/ffi_yajl/encoder_spec.rb
305
+ - spec/ffi_yajl/json_gem_spec.rb
306
+ - spec/ffi_yajl/parser_spec.rb
307
+ - spec/spec_helper.rb
308
+ homepage: http://github.com/lamont-granquist/ffi-yajl
309
+ licenses:
310
+ - Apache-2.0
311
+ metadata: {}
312
+ post_install_message:
313
+ rdoc_options: []
314
+ require_paths:
315
+ - lib
316
+ required_ruby_version: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: '0'
321
+ required_rubygems_version: !ruby/object:Gem::Requirement
322
+ requirements:
323
+ - - ">="
324
+ - !ruby/object:Gem::Version
325
+ version: '0'
326
+ requirements: []
327
+ rubyforge_project:
328
+ rubygems_version: 2.2.0
329
+ signing_key:
330
+ specification_version: 4
331
+ summary: Ruby FFI wrapper around YAJL 2.x
332
+ test_files: []