oj 3.14.2 → 3.14.3
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 +5 -1
- data/README.md +0 -1
- data/ext/oj/buf.h +2 -2
- data/ext/oj/cache.c +16 -16
- data/ext/oj/cache8.c +7 -7
- data/ext/oj/circarray.c +2 -1
- data/ext/oj/circarray.h +2 -2
- data/ext/oj/code.c +2 -2
- data/ext/oj/code.h +2 -2
- data/ext/oj/compat.c +6 -14
- data/ext/oj/custom.c +1 -1
- data/ext/oj/debug.c +3 -9
- data/ext/oj/dump.c +16 -16
- data/ext/oj/dump_compat.c +551 -576
- data/ext/oj/dump_leaf.c +3 -5
- data/ext/oj/dump_object.c +35 -36
- data/ext/oj/dump_strict.c +2 -4
- data/ext/oj/encoder.c +1 -1
- data/ext/oj/err.c +2 -13
- data/ext/oj/err.h +9 -12
- data/ext/oj/extconf.rb +1 -1
- data/ext/oj/fast.c +24 -38
- data/ext/oj/intern.c +38 -42
- data/ext/oj/intern.h +3 -7
- data/ext/oj/mem.c +211 -217
- data/ext/oj/mem.h +10 -10
- data/ext/oj/mimic_json.c +18 -24
- data/ext/oj/object.c +5 -5
- data/ext/oj/odd.c +2 -1
- data/ext/oj/odd.h +4 -4
- data/ext/oj/oj.c +60 -81
- data/ext/oj/oj.h +53 -54
- data/ext/oj/parse.c +55 -118
- data/ext/oj/parse.h +5 -10
- data/ext/oj/parser.c +7 -8
- data/ext/oj/parser.h +7 -8
- data/ext/oj/rails.c +28 -59
- data/ext/oj/reader.c +5 -9
- data/ext/oj/reader.h +1 -1
- data/ext/oj/resolve.c +3 -4
- data/ext/oj/rxclass.c +1 -1
- data/ext/oj/rxclass.h +1 -1
- data/ext/oj/saj.c +4 -4
- data/ext/oj/saj2.c +32 -49
- data/ext/oj/saj2.h +1 -1
- data/ext/oj/scp.c +3 -14
- data/ext/oj/sparse.c +18 -67
- data/ext/oj/stream_writer.c +5 -18
- data/ext/oj/strict.c +7 -13
- data/ext/oj/string_writer.c +6 -14
- data/ext/oj/trace.h +27 -16
- data/ext/oj/usual.c +62 -61
- data/ext/oj/usual.h +6 -6
- data/ext/oj/util.h +1 -1
- data/ext/oj/val_stack.h +4 -4
- data/ext/oj/wab.c +7 -9
- data/lib/oj/active_support_helper.rb +0 -1
- data/lib/oj/bag.rb +7 -1
- data/lib/oj/easy_hash.rb +4 -5
- data/lib/oj/error.rb +0 -1
- data/lib/oj/json.rb +4 -2
- data/lib/oj/mimic.rb +4 -2
- data/lib/oj/state.rb +8 -5
- data/lib/oj/version.rb +1 -2
- data/lib/oj.rb +0 -1
- data/test/_test_active.rb +0 -1
- data/test/_test_active_mimic.rb +0 -1
- data/test/_test_mimic_rails.rb +0 -1
- data/test/activerecord/result_test.rb +5 -6
- data/test/bar.rb +3 -3
- data/test/files.rb +1 -1
- data/test/foo.rb +5 -48
- data/test/helper.rb +1 -4
- data/test/isolated/shared.rb +3 -2
- data/test/json_gem/json_addition_test.rb +2 -2
- data/test/json_gem/json_common_interface_test.rb +4 -4
- data/test/json_gem/json_encoding_test.rb +0 -0
- data/test/json_gem/json_ext_parser_test.rb +1 -0
- data/test/json_gem/json_fixtures_test.rb +3 -2
- data/test/json_gem/json_generator_test.rb +43 -32
- data/test/json_gem/json_generic_object_test.rb +11 -11
- data/test/json_gem/json_parser_test.rb +46 -46
- data/test/json_gem/json_string_matching_test.rb +9 -9
- data/test/mem.rb +7 -7
- data/test/perf.rb +2 -2
- data/test/perf_compat.rb +1 -1
- data/test/perf_fast.rb +1 -1
- data/test/perf_file.rb +2 -2
- data/test/perf_object.rb +1 -2
- data/test/perf_once.rb +4 -4
- data/test/perf_parser.rb +1 -2
- data/test/perf_saj.rb +1 -2
- data/test/perf_scp.rb +1 -1
- data/test/perf_simple.rb +3 -3
- data/test/perf_strict.rb +1 -1
- data/test/perf_wab.rb +1 -1
- data/test/sample/change.rb +0 -1
- data/test/sample/dir.rb +0 -1
- data/test/sample/doc.rb +0 -1
- data/test/sample/file.rb +0 -1
- data/test/sample/group.rb +0 -1
- data/test/sample/hasprops.rb +0 -1
- data/test/sample/layer.rb +0 -1
- data/test/sample/rect.rb +0 -1
- data/test/sample/shape.rb +0 -1
- data/test/sample/text.rb +0 -1
- data/test/sample.rb +2 -3
- data/test/sample_json.rb +0 -1
- data/test/test_compat.rb +11 -9
- data/test/test_custom.rb +5 -9
- data/test/test_debian.rb +1 -1
- data/test/test_fast.rb +10 -20
- data/test/test_file.rb +8 -8
- data/test/test_integer_range.rb +2 -2
- data/test/test_null.rb +5 -3
- data/test/test_object.rb +6 -5
- data/test/test_parser_saj.rb +23 -21
- data/test/test_parser_usual.rb +3 -3
- data/test/test_saj.rb +2 -0
- data/test/test_scp.rb +6 -6
- data/test/test_strict.rb +6 -4
- data/test/test_various.rb +21 -24
- data/test/test_wab.rb +6 -5
- data/test/test_writer.rb +1 -1
- metadata +17 -26
- data/test/activesupport4/decoding_test.rb +0 -108
- data/test/activesupport4/encoding_test.rb +0 -531
- data/test/activesupport4/test_helper.rb +0 -41
- data/test/activesupport5/abstract_unit.rb +0 -45
- data/test/activesupport5/decoding_test.rb +0 -133
- data/test/activesupport5/encoding_test.rb +0 -500
- data/test/activesupport5/encoding_test_cases.rb +0 -98
- data/test/activesupport5/test_helper.rb +0 -72
- data/test/activesupport5/time_zone_test_helpers.rb +0 -39
data/test/perf_once.rb
CHANGED
@@ -14,10 +14,10 @@ File.open(filename, "w") { |f|
|
|
14
14
|
('a'..'z').each { |a|
|
15
15
|
('a'..'z').each { |b|
|
16
16
|
('a'..'z').each { |c|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
('a'..'z').each { |d|
|
18
|
+
f.puts(%|"#{a}#{b}#{c}#{d}":#{cnt},|)
|
19
|
+
cnt += 1
|
20
|
+
}
|
21
21
|
}
|
22
22
|
}
|
23
23
|
}
|
data/test/perf_parser.rb
CHANGED
@@ -164,7 +164,6 @@ $obj_json = %|{
|
|
164
164
|
"juliet": "junk"
|
165
165
|
}|
|
166
166
|
|
167
|
-
|
168
167
|
p_usual = Oj::Parser.new(:usual)
|
169
168
|
p_usual.cache_keys = $cache_keys
|
170
169
|
p_usual.cache_strings = ($cache_keys ? 6 : 0)
|
@@ -186,5 +185,5 @@ perf.run($iter)
|
|
186
185
|
|
187
186
|
unless $failed.empty?
|
188
187
|
puts "The following packages were not included for the reason listed"
|
189
|
-
$failed.each { |tag,msg| puts "***** #{tag}: #{msg}" }
|
188
|
+
$failed.each { |tag, msg| puts "***** #{tag}: #{msg}" }
|
190
189
|
end
|
data/test/perf_saj.rb
CHANGED
@@ -93,7 +93,6 @@ if $verbose
|
|
93
93
|
puts "json:\n#{$json}\n"
|
94
94
|
end
|
95
95
|
|
96
|
-
|
97
96
|
puts '-' * 80
|
98
97
|
puts "Parse Performance"
|
99
98
|
perf = Perf.new()
|
@@ -105,5 +104,5 @@ perf.run($iter)
|
|
105
104
|
|
106
105
|
unless $failed.empty?
|
107
106
|
puts "The following packages were not included for the reason listed"
|
108
|
-
$failed.each { |tag,msg| puts "***** #{tag}: #{msg}" }
|
107
|
+
$failed.each { |tag, msg| puts "***** #{tag}: #{msg}" }
|
109
108
|
end
|
data/test/perf_scp.rb
CHANGED
data/test/perf_simple.rb
CHANGED
@@ -21,7 +21,7 @@ class Jazz
|
|
21
21
|
@array = [true, false, nil]
|
22
22
|
@hash = { 'one' => 1, 'two' => 2 }
|
23
23
|
end
|
24
|
-
def to_json()
|
24
|
+
def to_json(*_args)
|
25
25
|
%{
|
26
26
|
{ "boolean":#{@boolean},
|
27
27
|
"number":#{@number},
|
@@ -177,7 +177,7 @@ puts "%d Ox.load()s in %0.3f seconds or %0.1f loads/msec" % [$iter, dt, $iter/dt
|
|
177
177
|
|
178
178
|
puts "Parser results:"
|
179
179
|
puts "gem seconds parses/msec X faster than #{base_name} (higher is better)"
|
180
|
-
parse_results.each do |name,dt|
|
180
|
+
parse_results.each do |name, dt|
|
181
181
|
if 0.0 == dt
|
182
182
|
puts "#{name} failed to generate JSON"
|
183
183
|
next
|
@@ -276,7 +276,7 @@ puts "%d Ox.dump()s in %0.3f seconds or %0.1f dumps/msec" % [$iter, dt, $iter/dt
|
|
276
276
|
|
277
277
|
puts "Parser results:"
|
278
278
|
puts "gem seconds dumps/msec X faster than #{base_name} (higher is better)"
|
279
|
-
parse_results.each do |name,dt|
|
279
|
+
parse_results.each do |name, dt|
|
280
280
|
if 0.0 == dt
|
281
281
|
puts "#{name} failed to generate JSON"
|
282
282
|
next
|
data/test/perf_strict.rb
CHANGED
data/test/perf_wab.rb
CHANGED
data/test/sample/change.rb
CHANGED
data/test/sample/dir.rb
CHANGED
data/test/sample/doc.rb
CHANGED
data/test/sample/file.rb
CHANGED
data/test/sample/group.rb
CHANGED
data/test/sample/hasprops.rb
CHANGED
data/test/sample/layer.rb
CHANGED
data/test/sample/rect.rb
CHANGED
data/test/sample/shape.rb
CHANGED
data/test/sample/text.rb
CHANGED
data/test/sample.rb
CHANGED
@@ -7,7 +7,6 @@ if $0 == __FILE__
|
|
7
7
|
$: << '../ext'
|
8
8
|
end
|
9
9
|
|
10
|
-
require 'pp'
|
11
10
|
require 'sample/doc'
|
12
11
|
|
13
12
|
def sample_doc(size=3)
|
@@ -27,7 +26,7 @@ def sample_doc(size=3)
|
|
27
26
|
g = ::Sample::Group.new
|
28
27
|
(1..size).each do |k|
|
29
28
|
g2 = ::Sample::Group.new
|
30
|
-
r = ::Sample::Rect.new(j * 40 + 10.0, i * 10.0,
|
29
|
+
r = ::Sample::Rect.new((j * 40) + 10.0, i * 10.0,
|
31
30
|
10.123456 / k, 10.0 / k, colors[(i + j + k) % colors.size])
|
32
31
|
r.add_prop(:part_of, layer.name)
|
33
32
|
g2 << r
|
@@ -36,7 +35,7 @@ def sample_doc(size=3)
|
|
36
35
|
end
|
37
36
|
g2 = ::Sample::Group.new
|
38
37
|
(1..size).each do |k|
|
39
|
-
o = ::Sample::Oval.new(j * 40 + 12.0, i * 10.0 + 2.0,
|
38
|
+
o = ::Sample::Oval.new((j * 40) + 12.0, (i * 10.0) + 2.0,
|
40
39
|
6.0 / k, 6.0 / k, colors[(i + j + k) % colors.size])
|
41
40
|
o.add_prop(:inside, true)
|
42
41
|
g << o
|
data/test/sample_json.rb
CHANGED
data/test/test_compat.rb
CHANGED
@@ -30,7 +30,7 @@ class CompatJuice < Minitest::Test
|
|
30
30
|
alias == eql?
|
31
31
|
|
32
32
|
def to_json(*a)
|
33
|
-
%|{"json_class":"#{self.class
|
33
|
+
%|{"json_class":"#{self.class}","x":#{@x},"y":#{@y}}|
|
34
34
|
end
|
35
35
|
|
36
36
|
def self.json_create(h)
|
@@ -170,7 +170,7 @@ class CompatJuice < Minitest::Test
|
|
170
170
|
end
|
171
171
|
|
172
172
|
def test_array_deep
|
173
|
-
dump_and_load([1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13,[14,[15,[16,[17,[18,[19,[20]]]]]]]]]]]]]]]]]]]], false)
|
173
|
+
dump_and_load([1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20]]]]]]]]]]]]]]]]]]]], false)
|
174
174
|
end
|
175
175
|
|
176
176
|
def test_symbol
|
@@ -341,12 +341,14 @@ class CompatJuice < Minitest::Test
|
|
341
341
|
|
342
342
|
def test_io_file
|
343
343
|
filename = File.join(File.dirname(__FILE__), 'open_file_test.json')
|
344
|
-
File.open(filename, 'w') { |f|
|
344
|
+
File.open(filename, 'w') { |f|
|
345
|
+
f.write(%{{
|
345
346
|
"x":true,
|
346
347
|
"y":58,
|
347
348
|
"z": [1,2,3]
|
348
349
|
}
|
349
|
-
})
|
350
|
+
})
|
351
|
+
}
|
350
352
|
f = File.new(filename)
|
351
353
|
obj = Oj.compat_load(f)
|
352
354
|
f.close()
|
@@ -485,7 +487,7 @@ class CompatJuice < Minitest::Test
|
|
485
487
|
|
486
488
|
def test_parse_to_s
|
487
489
|
s = Stringy.new
|
488
|
-
assert_equal([1,2], Oj.load(s, :mode => :compat))
|
490
|
+
assert_equal([1, 2], Oj.load(s, :mode => :compat))
|
489
491
|
end
|
490
492
|
|
491
493
|
def test_parse_large_string
|
@@ -496,10 +498,10 @@ class CompatJuice < Minitest::Test
|
|
496
498
|
assert(error.message.include?('quoted string not terminated'))
|
497
499
|
|
498
500
|
json =<<~JSON
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
501
|
+
{
|
502
|
+
"a": "\\u3074\\u30fc\\u305f\\u30fc",
|
503
|
+
"b": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
504
|
+
}
|
503
505
|
JSON
|
504
506
|
assert_equal("ぴーたー", Oj.load(json)['a'])
|
505
507
|
end
|
data/test/test_custom.rb
CHANGED
@@ -196,7 +196,7 @@ class CustomJuice < Minitest::Test
|
|
196
196
|
end
|
197
197
|
|
198
198
|
def test_array_deep
|
199
|
-
dump_and_load([1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13,[14,[15,[16,[17,[18,[19,[20]]]]]]]]]]]]]]]]]]]], false)
|
199
|
+
dump_and_load([1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20]]]]]]]]]]]]]]]]]]]], false)
|
200
200
|
end
|
201
201
|
|
202
202
|
def test_deep_nest
|
@@ -204,7 +204,7 @@ class CustomJuice < Minitest::Test
|
|
204
204
|
|
205
205
|
begin
|
206
206
|
n = 10000
|
207
|
-
Oj.strict_load('[' * n + ']' * n)
|
207
|
+
Oj.strict_load(('[' * n) + (']' * n))
|
208
208
|
rescue Exception => e
|
209
209
|
assert(false, e.message)
|
210
210
|
end
|
@@ -343,7 +343,6 @@ class CustomJuice < Minitest::Test
|
|
343
343
|
"b":[3]
|
344
344
|
}
|
345
345
|
|, json)
|
346
|
-
|
347
346
|
end
|
348
347
|
|
349
348
|
def test_symbol
|
@@ -450,12 +449,9 @@ class CustomJuice < Minitest::Test
|
|
450
449
|
end
|
451
450
|
|
452
451
|
def test_datetime_unix_zone
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
json = Oj.dump(obj, :indent => 2, time_format: :unix_zone)
|
457
|
-
assert_equal('1483629630.000000000e-18000', json)
|
458
|
-
end
|
452
|
+
obj = DateTime.new(2017, 1, 5, 10, 20, 30, '-0500')
|
453
|
+
json = Oj.dump(obj, :indent => 2, time_format: :unix_zone)
|
454
|
+
assert_equal('1483629630.000000000e-18000', json)
|
459
455
|
end
|
460
456
|
|
461
457
|
def test_datetime_ruby
|
data/test/test_debian.rb
CHANGED
data/test/test_fast.rb
CHANGED
@@ -91,11 +91,7 @@ class DocTest < Minitest::Test
|
|
91
91
|
def test_fixnum
|
92
92
|
json = %{12345}
|
93
93
|
Oj::Doc.open(json) do |doc|
|
94
|
-
|
95
|
-
assert_equal(Integer, doc.type)
|
96
|
-
else
|
97
|
-
assert_equal(Fixnum, doc.type)
|
98
|
-
end
|
94
|
+
assert_equal(Integer, doc.type)
|
99
95
|
assert_equal(12345, doc.fetch())
|
100
96
|
end
|
101
97
|
end
|
@@ -211,7 +207,7 @@ class DocTest < Minitest::Test
|
|
211
207
|
['/array/1', 'hash/h2/a/2', '/array/1/hash/h2/a/2'],
|
212
208
|
['/array/1/hash', '../string', '/array/1/string'],
|
213
209
|
['/array/1/hash', '..', '/array/1'],
|
214
|
-
].each do |start,path,where|
|
210
|
+
].each do |start, path, where|
|
215
211
|
doc.move(start)
|
216
212
|
doc.move(path)
|
217
213
|
assert_equal(where, doc.where?)
|
@@ -220,21 +216,16 @@ class DocTest < Minitest::Test
|
|
220
216
|
end
|
221
217
|
|
222
218
|
def test_type
|
223
|
-
if '2.4.0' <= RUBY_VERSION
|
224
|
-
num_class = Integer
|
225
|
-
else
|
226
|
-
num_class = Fixnum
|
227
|
-
end
|
228
219
|
Oj::Doc.open(@json1) do |doc|
|
229
220
|
[['/', Hash],
|
230
221
|
['/array', Array],
|
231
222
|
['/array/1', Hash],
|
232
|
-
['/array/1/num',
|
223
|
+
['/array/1/num', Integer],
|
233
224
|
['/array/1/string', String],
|
234
225
|
['/array/1/hash/h2/a', Array],
|
235
|
-
['/array/1/hash/../num',
|
226
|
+
['/array/1/hash/../num', Integer],
|
236
227
|
['/array/1/hash/../..', Array],
|
237
|
-
].each do |path,type|
|
228
|
+
].each do |path, type|
|
238
229
|
assert_equal(type, doc.type(path))
|
239
230
|
end
|
240
231
|
end
|
@@ -251,7 +242,7 @@ class DocTest < Minitest::Test
|
|
251
242
|
['/array/1/hash/../num', 'num'],
|
252
243
|
['/array/1/hash/..', 1],
|
253
244
|
['/array/1/hash/../..', 'array'],
|
254
|
-
].each do |path,key|
|
245
|
+
].each do |path, key|
|
255
246
|
doc.move(path)
|
256
247
|
if key.nil?
|
257
248
|
assert_nil(doc.local_key())
|
@@ -273,7 +264,7 @@ class DocTest < Minitest::Test
|
|
273
264
|
['/array/1', {'num' => 3, 'string' => 'message', 'hash' => {'h2' => {'a' => [1, 2, 3]}}}],
|
274
265
|
['/array', [{'num' => 3, 'string' => 'message', 'hash' => {'h2' => {'a' => [1, 2, 3]}}}]],
|
275
266
|
['/', {'array' => [{'num' => 3, 'string' => 'message', 'hash' => {'h2' => {'a' => [1, 2, 3]}}}], 'boolean' => true}],
|
276
|
-
].each do |path,val|
|
267
|
+
].each do |path, val|
|
277
268
|
doc.move(path)
|
278
269
|
assert_equal(val, doc.fetch())
|
279
270
|
end
|
@@ -293,7 +284,7 @@ class DocTest < Minitest::Test
|
|
293
284
|
['/', {'array' => [{'num' => 3, 'string' => 'message', 'hash' => {'h2' => {'a' => [1, 2, 3]}}}], 'boolean' => true}],
|
294
285
|
['/nothing', nil],
|
295
286
|
['/array/10', nil],
|
296
|
-
].each do |path,val|
|
287
|
+
].each do |path, val|
|
297
288
|
if val.nil?
|
298
289
|
assert_nil(doc.fetch(path))
|
299
290
|
else
|
@@ -310,7 +301,6 @@ class DocTest < Minitest::Test
|
|
310
301
|
assert_nil(doc.fetch('/x'))
|
311
302
|
assert_nil(doc.fetch('/0'))
|
312
303
|
end
|
313
|
-
|
314
304
|
end
|
315
305
|
|
316
306
|
def test_move_fetch_path
|
@@ -318,7 +308,7 @@ class DocTest < Minitest::Test
|
|
318
308
|
[['/array/1', 'num', 3],
|
319
309
|
['/array/1', 'string', 'message'],
|
320
310
|
['/array/1/hash', 'h2/a', [1, 2, 3]],
|
321
|
-
].each do |path,fetch_path,val|
|
311
|
+
].each do |path, fetch_path, val|
|
322
312
|
doc.move(path)
|
323
313
|
assert_equal(val, doc.fetch(fetch_path))
|
324
314
|
end
|
@@ -333,7 +323,7 @@ class DocTest < Minitest::Test
|
|
333
323
|
['/array/1/dash', false],
|
334
324
|
['/array/3', false],
|
335
325
|
['/nothing', false],
|
336
|
-
].each do |path,val|
|
326
|
+
].each do |path, val|
|
337
327
|
assert_equal(val, doc.exists?(path), "failed for #{path.inspect}")
|
338
328
|
end
|
339
329
|
end
|
data/test/test_file.rb
CHANGED
@@ -19,21 +19,21 @@ class FileJuice < Minitest::Test
|
|
19
19
|
end
|
20
20
|
alias == eql?
|
21
21
|
|
22
|
-
end# Jam
|
22
|
+
end # Jam
|
23
23
|
|
24
24
|
class Jeez < Jam
|
25
25
|
def initialize(x, y)
|
26
26
|
super
|
27
27
|
end
|
28
28
|
|
29
|
-
def to_json()
|
29
|
+
def to_json(*_args)
|
30
30
|
%{{"json_class":"#{self.class}","x":#{@x},"y":#{@y}}}
|
31
31
|
end
|
32
32
|
|
33
33
|
def self.json_create(h)
|
34
34
|
self.new(h['x'], h['y'])
|
35
35
|
end
|
36
|
-
end# Jeez
|
36
|
+
end # Jeez
|
37
37
|
|
38
38
|
class Orange < Jam
|
39
39
|
def initialize(x, y)
|
@@ -212,11 +212,11 @@ class FileJuice < Minitest::Test
|
|
212
212
|
|
213
213
|
def test_load_unicode_path
|
214
214
|
json =<<~JSON
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
215
|
+
{
|
216
|
+
"x":true,
|
217
|
+
"y":58,
|
218
|
+
"z": [1,2,3]
|
219
|
+
}
|
220
220
|
JSON
|
221
221
|
|
222
222
|
Tempfile.create('file_test_conceição1.json') do |f|
|
data/test/test_integer_range.rb
CHANGED
@@ -49,7 +49,7 @@ class IntegerRangeTest < Minitest::Test
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def test_modes_without_opt
|
52
|
-
test = {safe:0, unsafe: 10000000000000000000}
|
52
|
+
test = {safe: 0, unsafe: 10000000000000000000}
|
53
53
|
exp = '{"safe":0,"unsafe":10000000000000000000}'
|
54
54
|
|
55
55
|
[:strict, :null, :compat, :rails, :custom].each do |mode|
|
@@ -63,7 +63,7 @@ class IntegerRangeTest < Minitest::Test
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def test_accept_nil_and_false
|
66
|
-
test = {safe:0, unsafe: 10000000000000000000}
|
66
|
+
test = {safe: 0, unsafe: 10000000000000000000}
|
67
67
|
exp = '{"safe":0,"unsafe":10000000000000000000}'
|
68
68
|
|
69
69
|
assert_equal(exp, Oj.dump(test, integer_range: nil))
|
data/test/test_null.rb
CHANGED
@@ -152,7 +152,7 @@ class NullJuice < Minitest::Test
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def test_array_deep
|
155
|
-
dump_and_load([1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13,[14,[15,[16,[17,[18,[19,[20]]]]]]]]]]]]]]]]]]]], false)
|
155
|
+
dump_and_load([1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20]]]]]]]]]]]]]]]]]]]], false)
|
156
156
|
end
|
157
157
|
|
158
158
|
# Hash
|
@@ -245,12 +245,14 @@ class NullJuice < Minitest::Test
|
|
245
245
|
|
246
246
|
def test_io_file
|
247
247
|
filename = File.join(File.dirname(__FILE__), 'open_file_test.json')
|
248
|
-
File.open(filename, 'w') { |f|
|
248
|
+
File.open(filename, 'w') { |f|
|
249
|
+
f.write(%{{
|
249
250
|
"x":true,
|
250
251
|
"y":58,
|
251
252
|
"z": [1,2,3]
|
252
253
|
}
|
253
|
-
})
|
254
|
+
})
|
255
|
+
}
|
254
256
|
f = File.new(filename)
|
255
257
|
obj = Oj.strict_load(f)
|
256
258
|
f.close()
|
data/test/test_object.rb
CHANGED
@@ -301,7 +301,7 @@ class ObjectJuice < Minitest::Test
|
|
301
301
|
end
|
302
302
|
|
303
303
|
def test_array_deep
|
304
|
-
dump_and_load([1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13,[14,[15,[16,[17,[18,[19,[20]]]]]]]]]]]]]]]]]]]], false)
|
304
|
+
dump_and_load([1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, [14, [15, [16, [17, [18, [19, [20]]]]]]]]]]]]]]]]]]]], false)
|
305
305
|
end
|
306
306
|
|
307
307
|
# Hash
|
@@ -377,12 +377,14 @@ class ObjectJuice < Minitest::Test
|
|
377
377
|
|
378
378
|
def test_io_file
|
379
379
|
filename = File.join(File.dirname(__FILE__), 'open_file_test.json')
|
380
|
-
File.open(filename, 'w') { |f|
|
380
|
+
File.open(filename, 'w') { |f|
|
381
|
+
f.write(%{{
|
381
382
|
"x":true,
|
382
383
|
"y":58,
|
383
384
|
"z": [1,2,3]
|
384
385
|
}
|
385
|
-
})
|
386
|
+
})
|
387
|
+
}
|
386
388
|
f = File.new(filename)
|
387
389
|
obj = Oj.object_load(f)
|
388
390
|
f.close()
|
@@ -651,7 +653,7 @@ class ObjectJuice < Minitest::Test
|
|
651
653
|
|
652
654
|
json = %{{"~#x":[1,2]}}
|
653
655
|
h = Oj.object_load(json)
|
654
|
-
assert_equal({'~#x' => [1,2]}, h);
|
656
|
+
assert_equal({'~#x' => [1, 2]}, h);
|
655
657
|
end
|
656
658
|
|
657
659
|
def test_json_struct
|
@@ -839,7 +841,6 @@ class ObjectJuice < Minitest::Test
|
|
839
841
|
assert_equal(h2['b'].__id__, h2.__id__)
|
840
842
|
end
|
841
843
|
|
842
|
-
|
843
844
|
def test_json_object_missing_fields
|
844
845
|
json = %{{ "^u": [ "ObjectJuice::Stuck",1]}}
|
845
846
|
|
data/test/test_parser_saj.rb
CHANGED
@@ -25,6 +25,8 @@ class AllSaj < Oj::Saj
|
|
25
25
|
|
26
26
|
def initialize()
|
27
27
|
@calls = []
|
28
|
+
|
29
|
+
super
|
28
30
|
end
|
29
31
|
|
30
32
|
def hash_start(key)
|
@@ -260,13 +262,13 @@ class SajTest < Minitest::Test
|
|
260
262
|
p.handler = handler
|
261
263
|
p.parse(json)
|
262
264
|
assert_equal([
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
265
|
+
[:array_start, nil],
|
266
|
+
[:add_value, true, nil],
|
267
|
+
[:array_end, nil],
|
268
|
+
[:array_start, nil],
|
269
|
+
[:add_value, false, nil],
|
270
|
+
[:array_end, nil],
|
271
|
+
], handler.calls)
|
270
272
|
end
|
271
273
|
|
272
274
|
def test_io
|
@@ -276,11 +278,11 @@ class SajTest < Minitest::Test
|
|
276
278
|
p.handler = handler
|
277
279
|
p.load(StringIO.new(json))
|
278
280
|
assert_equal([
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
281
|
+
[:array_start, nil],
|
282
|
+
[:add_value, true, nil],
|
283
|
+
[:add_value, false, nil],
|
284
|
+
[:array_end, nil],
|
285
|
+
], handler.calls)
|
284
286
|
end
|
285
287
|
|
286
288
|
def test_file
|
@@ -289,11 +291,11 @@ class SajTest < Minitest::Test
|
|
289
291
|
p.handler = handler
|
290
292
|
p.file('saj_test.json')
|
291
293
|
assert_equal([
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
294
|
+
[:array_start, nil],
|
295
|
+
[:add_value, true, nil],
|
296
|
+
[:add_value, false, nil],
|
297
|
+
[:array_end, nil],
|
298
|
+
], handler.calls)
|
297
299
|
end
|
298
300
|
|
299
301
|
def test_default
|
@@ -302,10 +304,10 @@ class SajTest < Minitest::Test
|
|
302
304
|
Oj::Parser.saj.handler = handler
|
303
305
|
Oj::Parser.saj.parse(json)
|
304
306
|
assert_equal([
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
307
|
+
[:array_start, nil],
|
308
|
+
[:add_value, true, nil],
|
309
|
+
[:array_end, nil],
|
310
|
+
], handler.calls)
|
309
311
|
end
|
310
312
|
|
311
313
|
def test_loc
|
data/test/test_parser_usual.rb
CHANGED
@@ -40,10 +40,10 @@ class UsualTest < Minitest::Test
|
|
40
40
|
[
|
41
41
|
['[]', []],
|
42
42
|
['[false]', [false]],
|
43
|
-
['[true,false]', [true,false]],
|
43
|
+
['[true,false]', [true, false]],
|
44
44
|
['[[]]', [[]]],
|
45
|
-
['[true,[],false]', [true,[],false]],
|
46
|
-
['[true,[true],false]', [true,[true],false]],
|
45
|
+
['[true,[],false]', [true, [], false]],
|
46
|
+
['[true,[true],false]', [true, [true], false]],
|
47
47
|
].each { |x|
|
48
48
|
doc = p.parse(x[0])
|
49
49
|
assert_equal(x[1], doc)
|