oj 3.14.2 → 3.14.3
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|