oj 3.7.4 → 3.13.21
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 +4 -4
- data/CHANGELOG.md +1352 -0
- data/README.md +29 -8
- data/RELEASE_NOTES.md +61 -0
- data/ext/oj/buf.h +53 -72
- data/ext/oj/cache.c +326 -0
- data/ext/oj/cache.h +21 -0
- data/ext/oj/cache8.c +61 -64
- data/ext/oj/cache8.h +12 -39
- data/ext/oj/circarray.c +37 -43
- data/ext/oj/circarray.h +16 -17
- data/ext/oj/code.c +165 -179
- data/ext/oj/code.h +27 -29
- data/ext/oj/compat.c +174 -194
- data/ext/oj/custom.c +809 -866
- data/ext/oj/debug.c +132 -0
- data/ext/oj/dump.c +848 -863
- data/ext/oj/dump.h +81 -67
- data/ext/oj/dump_compat.c +85 -123
- data/ext/oj/dump_leaf.c +100 -188
- data/ext/oj/dump_object.c +527 -656
- data/ext/oj/dump_strict.c +315 -338
- data/ext/oj/encode.h +7 -34
- data/ext/oj/encoder.c +43 -0
- data/ext/oj/err.c +40 -29
- data/ext/oj/err.h +48 -48
- data/ext/oj/extconf.rb +17 -4
- data/ext/oj/fast.c +1070 -1087
- data/ext/oj/intern.c +301 -0
- data/ext/oj/intern.h +26 -0
- data/ext/oj/mimic_json.c +469 -436
- data/ext/oj/object.c +525 -593
- data/ext/oj/odd.c +154 -138
- data/ext/oj/odd.h +37 -38
- data/ext/oj/oj.c +1325 -986
- data/ext/oj/oj.h +333 -316
- data/ext/oj/parse.c +1002 -846
- data/ext/oj/parse.h +92 -87
- data/ext/oj/parser.c +1557 -0
- data/ext/oj/parser.h +91 -0
- data/ext/oj/rails.c +888 -878
- data/ext/oj/rails.h +11 -14
- data/ext/oj/reader.c +141 -147
- data/ext/oj/reader.h +73 -89
- data/ext/oj/resolve.c +41 -62
- data/ext/oj/resolve.h +7 -9
- data/ext/oj/rxclass.c +71 -75
- data/ext/oj/rxclass.h +18 -19
- data/ext/oj/saj.c +443 -486
- data/ext/oj/saj2.c +602 -0
- data/ext/oj/scp.c +88 -113
- data/ext/oj/sparse.c +787 -709
- data/ext/oj/stream_writer.c +133 -159
- data/ext/oj/strict.c +127 -118
- data/ext/oj/string_writer.c +230 -249
- data/ext/oj/trace.c +34 -41
- data/ext/oj/trace.h +19 -19
- data/ext/oj/usual.c +1254 -0
- data/ext/oj/util.c +136 -0
- data/ext/oj/util.h +20 -0
- data/ext/oj/val_stack.c +59 -67
- data/ext/oj/val_stack.h +91 -129
- data/ext/oj/validate.c +46 -0
- data/ext/oj/wab.c +342 -353
- data/lib/oj/bag.rb +1 -0
- data/lib/oj/easy_hash.rb +5 -4
- data/lib/oj/error.rb +1 -1
- data/lib/oj/json.rb +1 -1
- data/lib/oj/mimic.rb +48 -14
- data/lib/oj/saj.rb +20 -6
- data/lib/oj/state.rb +8 -7
- data/lib/oj/version.rb +2 -2
- data/lib/oj.rb +0 -8
- data/pages/Compatibility.md +1 -1
- data/pages/JsonGem.md +15 -0
- data/pages/Modes.md +53 -46
- data/pages/Options.md +72 -11
- data/pages/Parser.md +309 -0
- data/pages/Rails.md +73 -22
- data/pages/Security.md +1 -1
- data/test/activerecord/result_test.rb +7 -2
- data/test/activesupport5/abstract_unit.rb +45 -0
- data/test/activesupport5/decoding_test.rb +68 -60
- data/test/activesupport5/encoding_test.rb +111 -96
- data/test/activesupport5/encoding_test_cases.rb +33 -25
- data/test/activesupport5/test_helper.rb +43 -21
- data/test/activesupport5/time_zone_test_helpers.rb +18 -3
- data/test/activesupport6/abstract_unit.rb +44 -0
- data/test/activesupport6/decoding_test.rb +133 -0
- data/test/activesupport6/encoding_test.rb +507 -0
- data/test/activesupport6/encoding_test_cases.rb +98 -0
- data/test/activesupport6/test_common.rb +17 -0
- data/test/activesupport6/test_helper.rb +163 -0
- data/test/activesupport6/time_zone_test_helpers.rb +39 -0
- data/test/activesupport7/abstract_unit.rb +49 -0
- data/test/activesupport7/decoding_test.rb +125 -0
- data/test/activesupport7/encoding_test.rb +486 -0
- data/test/activesupport7/encoding_test_cases.rb +104 -0
- data/test/activesupport7/time_zone_test_helpers.rb +47 -0
- data/test/bar.rb +6 -12
- data/test/baz.rb +16 -0
- data/test/bug.rb +16 -0
- data/test/foo.rb +69 -75
- data/test/helper.rb +16 -0
- data/test/json_gem/json_common_interface_test.rb +8 -3
- data/test/json_gem/json_generator_test.rb +18 -4
- data/test/json_gem/json_parser_test.rb +9 -0
- data/test/json_gem/test_helper.rb +12 -0
- data/test/mem.rb +33 -0
- data/test/perf.rb +1 -1
- data/test/perf_dump.rb +50 -0
- data/test/perf_once.rb +58 -0
- data/test/perf_parser.rb +189 -0
- data/test/perf_scp.rb +11 -10
- data/test/perf_strict.rb +17 -23
- data/test/prec.rb +23 -0
- data/test/sample_json.rb +1 -1
- data/test/test_compat.rb +46 -10
- data/test/test_custom.rb +147 -8
- data/test/test_fast.rb +62 -2
- data/test/test_file.rb +25 -2
- data/test/test_gc.rb +13 -0
- data/test/test_generate.rb +21 -0
- data/test/test_hash.rb +11 -1
- data/test/test_integer_range.rb +7 -2
- data/test/test_object.rb +85 -9
- data/test/test_parser.rb +27 -0
- data/test/test_parser_saj.rb +335 -0
- data/test/test_parser_usual.rb +217 -0
- data/test/test_rails.rb +35 -0
- data/test/test_saj.rb +1 -1
- data/test/test_scp.rb +5 -5
- data/test/test_strict.rb +26 -1
- data/test/test_various.rb +87 -65
- data/test/test_wab.rb +2 -0
- data/test/test_writer.rb +19 -2
- data/test/tests.rb +1 -1
- data/test/zoo.rb +13 -0
- metadata +60 -110
- data/ext/oj/hash.c +0 -163
- data/ext/oj/hash.h +0 -46
- data/ext/oj/hash_test.c +0 -512
data/test/test_various.rb
CHANGED
|
@@ -96,68 +96,49 @@ class Juice < Minitest::Test
|
|
|
96
96
|
Oj.default_options = @default_options
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
-
=begin
|
|
100
|
-
# Depending on the order the values may have changed. The set_options sets
|
|
101
|
-
# should cover the function itself.
|
|
102
|
-
def test_get_options
|
|
103
|
-
opts = Oj.default_options()
|
|
104
|
-
assert_equal({ :indent=>0,
|
|
105
|
-
:second_precision=>9,
|
|
106
|
-
:circular=>false,
|
|
107
|
-
:class_cache=>true,
|
|
108
|
-
:auto_define=>false,
|
|
109
|
-
:symbol_keys=>false,
|
|
110
|
-
:bigdecimal_as_decimal=>true,
|
|
111
|
-
:use_to_json=>true,
|
|
112
|
-
:nilnil=>false,
|
|
113
|
-
:allow_gc=>true,
|
|
114
|
-
:quirks_mode=>true,
|
|
115
|
-
:allow_invalid_unicode=>false,
|
|
116
|
-
:float_precision=>15,
|
|
117
|
-
:mode=>:object,
|
|
118
|
-
:escape_mode=>:json,
|
|
119
|
-
:time_format=>:unix_zone,
|
|
120
|
-
:bigdecimal_load=>:auto,
|
|
121
|
-
:create_id=>'json_class'}, opts)
|
|
122
|
-
end
|
|
123
|
-
=end
|
|
124
99
|
def test_set_options
|
|
125
100
|
orig = Oj.default_options()
|
|
126
101
|
alt ={
|
|
127
|
-
:
|
|
128
|
-
:
|
|
129
|
-
:
|
|
130
|
-
:
|
|
131
|
-
:
|
|
132
|
-
:
|
|
133
|
-
:
|
|
134
|
-
:
|
|
135
|
-
:
|
|
136
|
-
:
|
|
137
|
-
:
|
|
138
|
-
:
|
|
139
|
-
:
|
|
140
|
-
:
|
|
141
|
-
:
|
|
142
|
-
:
|
|
143
|
-
:
|
|
144
|
-
:
|
|
145
|
-
:
|
|
146
|
-
:
|
|
147
|
-
:
|
|
148
|
-
:
|
|
149
|
-
:
|
|
150
|
-
:
|
|
151
|
-
:
|
|
152
|
-
:
|
|
153
|
-
:
|
|
154
|
-
:
|
|
155
|
-
:
|
|
156
|
-
:
|
|
157
|
-
:
|
|
158
|
-
:
|
|
159
|
-
:
|
|
160
|
-
:
|
|
102
|
+
indent: " - ",
|
|
103
|
+
second_precision: 5,
|
|
104
|
+
circular: true,
|
|
105
|
+
class_cache: false,
|
|
106
|
+
auto_define: true,
|
|
107
|
+
symbol_keys: true,
|
|
108
|
+
bigdecimal_as_decimal: false,
|
|
109
|
+
use_to_json: false,
|
|
110
|
+
use_to_hash: false,
|
|
111
|
+
use_as_json: false,
|
|
112
|
+
use_raw_json: false,
|
|
113
|
+
nilnil: true,
|
|
114
|
+
empty_string: true,
|
|
115
|
+
allow_gc: false,
|
|
116
|
+
quirks_mode: false,
|
|
117
|
+
allow_invalid_unicode: true,
|
|
118
|
+
float_precision: 13,
|
|
119
|
+
mode: :strict,
|
|
120
|
+
escape_mode: :ascii,
|
|
121
|
+
time_format: :unix_zone,
|
|
122
|
+
bigdecimal_load: :float,
|
|
123
|
+
compat_bigdecimal: true,
|
|
124
|
+
create_id: 'classy',
|
|
125
|
+
create_additions: true,
|
|
126
|
+
cache_keys: false,
|
|
127
|
+
cache_str: 5,
|
|
128
|
+
space: 'z',
|
|
129
|
+
array_nl: 'a',
|
|
130
|
+
object_nl: 'o',
|
|
131
|
+
space_before: 'b',
|
|
132
|
+
nan: :huge,
|
|
133
|
+
hash_class: Hash,
|
|
134
|
+
omit_nil: false,
|
|
135
|
+
allow_nan: true,
|
|
136
|
+
integer_range: nil,
|
|
137
|
+
array_class: Array,
|
|
138
|
+
ignore: nil,
|
|
139
|
+
ignore_under: true,
|
|
140
|
+
trace: true,
|
|
141
|
+
safe: true,
|
|
161
142
|
}
|
|
162
143
|
Oj.default_options = alt
|
|
163
144
|
#keys = alt.keys
|
|
@@ -207,7 +188,6 @@ class Juice < Minitest::Test
|
|
|
207
188
|
n = Oj.load('-0.000012345678901234567')
|
|
208
189
|
assert_equal(BigDecimal, n.class)
|
|
209
190
|
assert_equal('-0.12345678901234567E-4', n.to_s.upcase)
|
|
210
|
-
|
|
211
191
|
end
|
|
212
192
|
|
|
213
193
|
=begin
|
|
@@ -365,6 +345,12 @@ class Juice < Minitest::Test
|
|
|
365
345
|
out = Oj.dump hash
|
|
366
346
|
assert_equal(%{{"key":"I \\u003c3 this"}}, out)
|
|
367
347
|
end
|
|
348
|
+
def test_escapes_slashes_by_default_when_configured_to_do_so
|
|
349
|
+
hash = {'key' => "I <3 this </script>"}
|
|
350
|
+
Oj.default_options = {:escape_mode => :slash}
|
|
351
|
+
out = Oj.dump hash
|
|
352
|
+
assert_equal(%{{"key":"I <3 this <\\/script>"}}, out)
|
|
353
|
+
end
|
|
368
354
|
def test_escapes_entities_when_asked_to
|
|
369
355
|
hash = {'key' => "I <3 this"}
|
|
370
356
|
out = Oj.dump(hash, :escape_mode => :xss_safe)
|
|
@@ -420,6 +406,17 @@ class Juice < Minitest::Test
|
|
|
420
406
|
assert_equal('-2208987661.000000000', json)
|
|
421
407
|
end
|
|
422
408
|
|
|
409
|
+
def test_time_years
|
|
410
|
+
(-2020..2020).each { |year|
|
|
411
|
+
s = "%04d-03-01T15:14:13Z" % [year]
|
|
412
|
+
json = Oj.dump(Time.parse(s), mode: :custom, time_format: :xmlschema, second_precision: -1)
|
|
413
|
+
assert_equal(s, json[1..-2])
|
|
414
|
+
|
|
415
|
+
json = Oj.dump(Time.parse(s), mode: :custom, time_format: :xmlschema, second_precision: 3)
|
|
416
|
+
assert_equal(s[0..-2] + '.000Z', json[1..-2])
|
|
417
|
+
}
|
|
418
|
+
end
|
|
419
|
+
|
|
423
420
|
# Class
|
|
424
421
|
def test_class_null
|
|
425
422
|
json = Oj.dump(Juice, :mode => :null)
|
|
@@ -537,7 +534,7 @@ class Juice < Minitest::Test
|
|
|
537
534
|
assert_equal(58, obj.y)
|
|
538
535
|
end
|
|
539
536
|
|
|
540
|
-
# Stream Deeply Nested
|
|
537
|
+
# Stream Deeply Nested
|
|
541
538
|
def test_deep_nest_dump
|
|
542
539
|
begin
|
|
543
540
|
a = []
|
|
@@ -550,7 +547,7 @@ class Juice < Minitest::Test
|
|
|
550
547
|
assert(false, "*** expected an exception")
|
|
551
548
|
end
|
|
552
549
|
|
|
553
|
-
# Stream IO
|
|
550
|
+
# Stream IO
|
|
554
551
|
def test_io_string
|
|
555
552
|
src = { 'x' => true, 'y' => 58, 'z' => [1, 2, 3]}
|
|
556
553
|
output = StringIO.open("", "w+")
|
|
@@ -562,6 +559,9 @@ class Juice < Minitest::Test
|
|
|
562
559
|
end
|
|
563
560
|
|
|
564
561
|
def test_io_file
|
|
562
|
+
# Windows does not support fork
|
|
563
|
+
return if RbConfig::CONFIG['host_os'] =~ /(mingw|mswin)/
|
|
564
|
+
|
|
565
565
|
src = { 'x' => true, 'y' => 58, 'z' => [1, 2, 3]}
|
|
566
566
|
filename = File.join(File.dirname(__FILE__), 'open_file_test.json')
|
|
567
567
|
File.open(filename, "w") { |f|
|
|
@@ -573,6 +573,28 @@ class Juice < Minitest::Test
|
|
|
573
573
|
assert_equal(src, obj)
|
|
574
574
|
end
|
|
575
575
|
|
|
576
|
+
def test_io_stream
|
|
577
|
+
IO.pipe do |r, w|
|
|
578
|
+
if fork
|
|
579
|
+
r.close
|
|
580
|
+
#w.nonblock = false
|
|
581
|
+
a = []
|
|
582
|
+
10_000.times do |i|
|
|
583
|
+
a << i
|
|
584
|
+
end
|
|
585
|
+
Oj.to_stream(w, a, indent: 2)
|
|
586
|
+
w.close
|
|
587
|
+
else
|
|
588
|
+
w.close
|
|
589
|
+
sleep(0.1) # to force a busy
|
|
590
|
+
cnt = 0
|
|
591
|
+
r.each_line { cnt += 1 }
|
|
592
|
+
r.close
|
|
593
|
+
Process.exit(0)
|
|
594
|
+
end
|
|
595
|
+
end
|
|
596
|
+
end
|
|
597
|
+
|
|
576
598
|
# comments
|
|
577
599
|
def test_comment_slash
|
|
578
600
|
json = %{{
|
|
@@ -682,13 +704,13 @@ class Juice < Minitest::Test
|
|
|
682
704
|
raise e
|
|
683
705
|
end
|
|
684
706
|
}
|
|
685
|
-
assert_equal('first[2].third', msg.split('(')[1].split(')')[0])
|
|
707
|
+
assert_equal('after first[2].third', msg.split('(')[1].split(')')[0])
|
|
686
708
|
end
|
|
687
709
|
|
|
688
710
|
def test_bad_bignum
|
|
689
711
|
if '2.4.0' < RUBY_VERSION
|
|
690
|
-
assert_raises
|
|
691
|
-
Oj.load(%|{ "big": -e123456789 }
|
|
712
|
+
assert_raises Oj::ParseError do
|
|
713
|
+
Oj.load(%|{ "big": -e123456789 }|, mode: :strict)
|
|
692
714
|
end
|
|
693
715
|
end
|
|
694
716
|
end
|
data/test/test_wab.rb
CHANGED
data/test/test_writer.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
# encoding:
|
|
2
|
+
# encoding: utf-8
|
|
3
3
|
|
|
4
4
|
$: << File.dirname(__FILE__)
|
|
5
5
|
|
|
@@ -227,6 +227,22 @@ class OjWriter < Minitest::Test
|
|
|
227
227
|
|
|
228
228
|
# Stream Writer
|
|
229
229
|
|
|
230
|
+
class SString < ::String
|
|
231
|
+
alias :write :concat
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
def test_stream_writer_encoding
|
|
235
|
+
output = SString.new.force_encoding(::Encoding::UTF_8)
|
|
236
|
+
w = Oj::StreamWriter.new(output, :indent => 0)
|
|
237
|
+
# Oddly enough, when pushing ASCII characters with UTF-8 encoding or even
|
|
238
|
+
# ASCII-8BIT does not change the output encoding. Pushing any non-ASCII no
|
|
239
|
+
# matter what the encoding changes the output encoding to ASCII-8BIT.
|
|
240
|
+
x = "香港" # Hong Kong
|
|
241
|
+
x = x.force_encoding('ASCII-8BIT')
|
|
242
|
+
w.push_value(x)
|
|
243
|
+
assert_equal(::Encoding::UTF_8, output.encoding)
|
|
244
|
+
end
|
|
245
|
+
|
|
230
246
|
def test_stream_writer_empty_array
|
|
231
247
|
output = StringIO.open("", "w+")
|
|
232
248
|
w = Oj::StreamWriter.new(output, :indent => 0)
|
|
@@ -251,7 +267,8 @@ class OjWriter < Minitest::Test
|
|
|
251
267
|
w.push_object("a3")
|
|
252
268
|
w.pop()
|
|
253
269
|
w.pop()
|
|
254
|
-
|
|
270
|
+
result = output.string()
|
|
271
|
+
assert_equal(%|{"a1":{},"a2":{"b":[7,true,"string"]},"a3":{}}\n|, result)
|
|
255
272
|
end
|
|
256
273
|
|
|
257
274
|
def test_stream_writer_mixed_file
|
data/test/tests.rb
CHANGED
data/test/zoo.rb
ADDED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: oj
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.13.21
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter Ohler
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-08-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake-compiler
|
|
@@ -58,20 +58,6 @@ dependencies:
|
|
|
58
58
|
- - "~>"
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
60
|
version: '3.0'
|
|
61
|
-
- !ruby/object:Gem::Dependency
|
|
62
|
-
name: wwtd
|
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - "~>"
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '0'
|
|
68
|
-
type: :development
|
|
69
|
-
prerelease: false
|
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
-
requirements:
|
|
72
|
-
- - "~>"
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: '0'
|
|
75
61
|
description: The fastest JSON parser and object serializer.
|
|
76
62
|
email: peter@ohler.com
|
|
77
63
|
executables: []
|
|
@@ -79,20 +65,28 @@ extensions:
|
|
|
79
65
|
- ext/oj/extconf.rb
|
|
80
66
|
extra_rdoc_files:
|
|
81
67
|
- README.md
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
- pages/WAB.md
|
|
86
|
-
- pages/Custom.md
|
|
68
|
+
- LICENSE
|
|
69
|
+
- CHANGELOG.md
|
|
70
|
+
- RELEASE_NOTES.md
|
|
87
71
|
- pages/Advanced.md
|
|
88
|
-
- pages/Options.md
|
|
89
72
|
- pages/Compatibility.md
|
|
73
|
+
- pages/Custom.md
|
|
74
|
+
- pages/Encoding.md
|
|
75
|
+
- pages/JsonGem.md
|
|
90
76
|
- pages/Modes.md
|
|
77
|
+
- pages/Options.md
|
|
78
|
+
- pages/Parser.md
|
|
79
|
+
- pages/Rails.md
|
|
91
80
|
- pages/Security.md
|
|
81
|
+
- pages/WAB.md
|
|
92
82
|
files:
|
|
83
|
+
- CHANGELOG.md
|
|
93
84
|
- LICENSE
|
|
94
85
|
- README.md
|
|
86
|
+
- RELEASE_NOTES.md
|
|
95
87
|
- ext/oj/buf.h
|
|
88
|
+
- ext/oj/cache.c
|
|
89
|
+
- ext/oj/cache.h
|
|
96
90
|
- ext/oj/cache8.c
|
|
97
91
|
- ext/oj/cache8.h
|
|
98
92
|
- ext/oj/circarray.c
|
|
@@ -101,6 +95,7 @@ files:
|
|
|
101
95
|
- ext/oj/code.h
|
|
102
96
|
- ext/oj/compat.c
|
|
103
97
|
- ext/oj/custom.c
|
|
98
|
+
- ext/oj/debug.c
|
|
104
99
|
- ext/oj/dump.c
|
|
105
100
|
- ext/oj/dump.h
|
|
106
101
|
- ext/oj/dump_compat.c
|
|
@@ -108,13 +103,13 @@ files:
|
|
|
108
103
|
- ext/oj/dump_object.c
|
|
109
104
|
- ext/oj/dump_strict.c
|
|
110
105
|
- ext/oj/encode.h
|
|
106
|
+
- ext/oj/encoder.c
|
|
111
107
|
- ext/oj/err.c
|
|
112
108
|
- ext/oj/err.h
|
|
113
109
|
- ext/oj/extconf.rb
|
|
114
110
|
- ext/oj/fast.c
|
|
115
|
-
- ext/oj/
|
|
116
|
-
- ext/oj/
|
|
117
|
-
- ext/oj/hash_test.c
|
|
111
|
+
- ext/oj/intern.c
|
|
112
|
+
- ext/oj/intern.h
|
|
118
113
|
- ext/oj/mimic_json.c
|
|
119
114
|
- ext/oj/object.c
|
|
120
115
|
- ext/oj/odd.c
|
|
@@ -123,6 +118,8 @@ files:
|
|
|
123
118
|
- ext/oj/oj.h
|
|
124
119
|
- ext/oj/parse.c
|
|
125
120
|
- ext/oj/parse.h
|
|
121
|
+
- ext/oj/parser.c
|
|
122
|
+
- ext/oj/parser.h
|
|
126
123
|
- ext/oj/rails.c
|
|
127
124
|
- ext/oj/rails.h
|
|
128
125
|
- ext/oj/reader.c
|
|
@@ -132,6 +129,7 @@ files:
|
|
|
132
129
|
- ext/oj/rxclass.c
|
|
133
130
|
- ext/oj/rxclass.h
|
|
134
131
|
- ext/oj/saj.c
|
|
132
|
+
- ext/oj/saj2.c
|
|
135
133
|
- ext/oj/scp.c
|
|
136
134
|
- ext/oj/sparse.c
|
|
137
135
|
- ext/oj/stream_writer.c
|
|
@@ -139,8 +137,12 @@ files:
|
|
|
139
137
|
- ext/oj/string_writer.c
|
|
140
138
|
- ext/oj/trace.c
|
|
141
139
|
- ext/oj/trace.h
|
|
140
|
+
- ext/oj/usual.c
|
|
141
|
+
- ext/oj/util.c
|
|
142
|
+
- ext/oj/util.h
|
|
142
143
|
- ext/oj/val_stack.c
|
|
143
144
|
- ext/oj/val_stack.h
|
|
145
|
+
- ext/oj/validate.c
|
|
144
146
|
- ext/oj/wab.c
|
|
145
147
|
- lib/oj.rb
|
|
146
148
|
- lib/oj/active_support_helper.rb
|
|
@@ -160,6 +162,7 @@ files:
|
|
|
160
162
|
- pages/JsonGem.md
|
|
161
163
|
- pages/Modes.md
|
|
162
164
|
- pages/Options.md
|
|
165
|
+
- pages/Parser.md
|
|
163
166
|
- pages/Rails.md
|
|
164
167
|
- pages/Security.md
|
|
165
168
|
- pages/WAB.md
|
|
@@ -170,12 +173,27 @@ files:
|
|
|
170
173
|
- test/activesupport4/decoding_test.rb
|
|
171
174
|
- test/activesupport4/encoding_test.rb
|
|
172
175
|
- test/activesupport4/test_helper.rb
|
|
176
|
+
- test/activesupport5/abstract_unit.rb
|
|
173
177
|
- test/activesupport5/decoding_test.rb
|
|
174
178
|
- test/activesupport5/encoding_test.rb
|
|
175
179
|
- test/activesupport5/encoding_test_cases.rb
|
|
176
180
|
- test/activesupport5/test_helper.rb
|
|
177
181
|
- test/activesupport5/time_zone_test_helpers.rb
|
|
182
|
+
- test/activesupport6/abstract_unit.rb
|
|
183
|
+
- test/activesupport6/decoding_test.rb
|
|
184
|
+
- test/activesupport6/encoding_test.rb
|
|
185
|
+
- test/activesupport6/encoding_test_cases.rb
|
|
186
|
+
- test/activesupport6/test_common.rb
|
|
187
|
+
- test/activesupport6/test_helper.rb
|
|
188
|
+
- test/activesupport6/time_zone_test_helpers.rb
|
|
189
|
+
- test/activesupport7/abstract_unit.rb
|
|
190
|
+
- test/activesupport7/decoding_test.rb
|
|
191
|
+
- test/activesupport7/encoding_test.rb
|
|
192
|
+
- test/activesupport7/encoding_test_cases.rb
|
|
193
|
+
- test/activesupport7/time_zone_test_helpers.rb
|
|
178
194
|
- test/bar.rb
|
|
195
|
+
- test/baz.rb
|
|
196
|
+
- test/bug.rb
|
|
179
197
|
- test/files.rb
|
|
180
198
|
- test/foo.rb
|
|
181
199
|
- test/helper.rb
|
|
@@ -198,16 +216,21 @@ files:
|
|
|
198
216
|
- test/json_gem/json_parser_test.rb
|
|
199
217
|
- test/json_gem/json_string_matching_test.rb
|
|
200
218
|
- test/json_gem/test_helper.rb
|
|
219
|
+
- test/mem.rb
|
|
201
220
|
- test/perf.rb
|
|
202
221
|
- test/perf_compat.rb
|
|
222
|
+
- test/perf_dump.rb
|
|
203
223
|
- test/perf_fast.rb
|
|
204
224
|
- test/perf_file.rb
|
|
205
225
|
- test/perf_object.rb
|
|
226
|
+
- test/perf_once.rb
|
|
227
|
+
- test/perf_parser.rb
|
|
206
228
|
- test/perf_saj.rb
|
|
207
229
|
- test/perf_scp.rb
|
|
208
230
|
- test/perf_simple.rb
|
|
209
231
|
- test/perf_strict.rb
|
|
210
232
|
- test/perf_wab.rb
|
|
233
|
+
- test/prec.rb
|
|
211
234
|
- test/sample.rb
|
|
212
235
|
- test/sample/change.rb
|
|
213
236
|
- test/sample/dir.rb
|
|
@@ -228,10 +251,15 @@ files:
|
|
|
228
251
|
- test/test_fast.rb
|
|
229
252
|
- test/test_file.rb
|
|
230
253
|
- test/test_gc.rb
|
|
254
|
+
- test/test_generate.rb
|
|
231
255
|
- test/test_hash.rb
|
|
232
256
|
- test/test_integer_range.rb
|
|
233
257
|
- test/test_null.rb
|
|
234
258
|
- test/test_object.rb
|
|
259
|
+
- test/test_parser.rb
|
|
260
|
+
- test/test_parser_saj.rb
|
|
261
|
+
- test/test_parser_usual.rb
|
|
262
|
+
- test/test_rails.rb
|
|
235
263
|
- test/test_saj.rb
|
|
236
264
|
- test/test_scp.rb
|
|
237
265
|
- test/test_strict.rb
|
|
@@ -241,6 +269,7 @@ files:
|
|
|
241
269
|
- test/tests.rb
|
|
242
270
|
- test/tests_mimic.rb
|
|
243
271
|
- test/tests_mimic_addition.rb
|
|
272
|
+
- test/zoo.rb
|
|
244
273
|
homepage: http://www.ohler.com/oj
|
|
245
274
|
licenses:
|
|
246
275
|
- MIT
|
|
@@ -251,7 +280,7 @@ metadata:
|
|
|
251
280
|
homepage_uri: http://www.ohler.com/oj/
|
|
252
281
|
source_code_uri: https://github.com/ohler55/oj
|
|
253
282
|
wiki_uri: https://github.com/ohler55/oj/wiki
|
|
254
|
-
post_install_message:
|
|
283
|
+
post_install_message:
|
|
255
284
|
rdoc_options:
|
|
256
285
|
- "--title"
|
|
257
286
|
- Oj
|
|
@@ -263,94 +292,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
263
292
|
requirements:
|
|
264
293
|
- - ">="
|
|
265
294
|
- !ruby/object:Gem::Version
|
|
266
|
-
version: '2.
|
|
295
|
+
version: '2.4'
|
|
267
296
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
268
297
|
requirements:
|
|
269
298
|
- - ">="
|
|
270
299
|
- !ruby/object:Gem::Version
|
|
271
300
|
version: '0'
|
|
272
301
|
requirements: []
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
signing_key:
|
|
302
|
+
rubygems_version: 3.3.3
|
|
303
|
+
signing_key:
|
|
276
304
|
specification_version: 4
|
|
277
305
|
summary: A fast JSON parser and serializer.
|
|
278
|
-
test_files:
|
|
279
|
-
- test/foo.rb
|
|
280
|
-
- test/test_integer_range.rb
|
|
281
|
-
- test/test_strict.rb
|
|
282
|
-
- test/perf_strict.rb
|
|
283
|
-
- test/tests.rb
|
|
284
|
-
- test/perf_saj.rb
|
|
285
|
-
- test/test_compat.rb
|
|
286
|
-
- test/helper.rb
|
|
287
|
-
- test/perf_file.rb
|
|
288
|
-
- test/test_scp.rb
|
|
289
|
-
- test/perf_compat.rb
|
|
290
|
-
- test/json_gem/json_common_interface_test.rb
|
|
291
|
-
- test/json_gem/json_addition_test.rb
|
|
292
|
-
- test/json_gem/json_fixtures_test.rb
|
|
293
|
-
- test/json_gem/json_ext_parser_test.rb
|
|
294
|
-
- test/json_gem/json_string_matching_test.rb
|
|
295
|
-
- test/json_gem/json_generic_object_test.rb
|
|
296
|
-
- test/json_gem/json_generator_test.rb
|
|
297
|
-
- test/json_gem/test_helper.rb
|
|
298
|
-
- test/json_gem/json_encoding_test.rb
|
|
299
|
-
- test/json_gem/json_parser_test.rb
|
|
300
|
-
- test/perf_wab.rb
|
|
301
|
-
- test/test_file.rb
|
|
302
|
-
- test/test_object.rb
|
|
303
|
-
- test/sample.rb
|
|
304
|
-
- test/perf_object.rb
|
|
305
|
-
- test/test_hash.rb
|
|
306
|
-
- test/test_custom.rb
|
|
307
|
-
- test/bar.rb
|
|
308
|
-
- test/activesupport4/encoding_test.rb
|
|
309
|
-
- test/activesupport4/test_helper.rb
|
|
310
|
-
- test/activesupport4/decoding_test.rb
|
|
311
|
-
- test/sample_json.rb
|
|
312
|
-
- test/activesupport5/encoding_test_cases.rb
|
|
313
|
-
- test/activesupport5/encoding_test.rb
|
|
314
|
-
- test/activesupport5/time_zone_test_helpers.rb
|
|
315
|
-
- test/activesupport5/test_helper.rb
|
|
316
|
-
- test/activesupport5/decoding_test.rb
|
|
317
|
-
- test/test_saj.rb
|
|
318
|
-
- test/perf_scp.rb
|
|
319
|
-
- test/test_wab.rb
|
|
320
|
-
- test/test_null.rb
|
|
321
|
-
- test/_test_active.rb
|
|
322
|
-
- test/_test_mimic_rails.rb
|
|
323
|
-
- test/test_fast.rb
|
|
324
|
-
- test/perf_fast.rb
|
|
325
|
-
- test/sample/change.rb
|
|
326
|
-
- test/sample/text.rb
|
|
327
|
-
- test/sample/doc.rb
|
|
328
|
-
- test/sample/shape.rb
|
|
329
|
-
- test/sample/layer.rb
|
|
330
|
-
- test/sample/group.rb
|
|
331
|
-
- test/sample/file.rb
|
|
332
|
-
- test/sample/rect.rb
|
|
333
|
-
- test/sample/hasprops.rb
|
|
334
|
-
- test/sample/line.rb
|
|
335
|
-
- test/sample/dir.rb
|
|
336
|
-
- test/sample/oval.rb
|
|
337
|
-
- test/tests_mimic.rb
|
|
338
|
-
- test/perf_simple.rb
|
|
339
|
-
- test/activerecord/result_test.rb
|
|
340
|
-
- test/_test_active_mimic.rb
|
|
341
|
-
- test/tests_mimic_addition.rb
|
|
342
|
-
- test/test_writer.rb
|
|
343
|
-
- test/perf.rb
|
|
344
|
-
- test/isolated/test_mimic_define.rb
|
|
345
|
-
- test/isolated/test_mimic_after.rb
|
|
346
|
-
- test/isolated/test_mimic_rails_after.rb
|
|
347
|
-
- test/isolated/test_mimic_before.rb
|
|
348
|
-
- test/isolated/test_mimic_rails_before.rb
|
|
349
|
-
- test/isolated/test_mimic_redefine.rb
|
|
350
|
-
- test/isolated/shared.rb
|
|
351
|
-
- test/isolated/test_mimic_alone.rb
|
|
352
|
-
- test/isolated/test_mimic_as_json.rb
|
|
353
|
-
- test/test_debian.rb
|
|
354
|
-
- test/test_gc.rb
|
|
355
|
-
- test/files.rb
|
|
356
|
-
- test/test_various.rb
|
|
306
|
+
test_files: []
|