oj 3.14.2 → 3.15.0

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.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -1
  3. data/README.md +0 -1
  4. data/ext/oj/buf.h +2 -2
  5. data/ext/oj/cache.c +16 -16
  6. data/ext/oj/cache8.c +7 -7
  7. data/ext/oj/circarray.c +2 -1
  8. data/ext/oj/circarray.h +2 -2
  9. data/ext/oj/code.c +2 -2
  10. data/ext/oj/code.h +2 -2
  11. data/ext/oj/compat.c +6 -14
  12. data/ext/oj/custom.c +6 -16
  13. data/ext/oj/debug.c +3 -9
  14. data/ext/oj/dump.c +43 -18
  15. data/ext/oj/dump_compat.c +551 -576
  16. data/ext/oj/dump_leaf.c +3 -5
  17. data/ext/oj/dump_object.c +35 -36
  18. data/ext/oj/dump_strict.c +2 -4
  19. data/ext/oj/encoder.c +1 -1
  20. data/ext/oj/err.c +2 -13
  21. data/ext/oj/err.h +9 -12
  22. data/ext/oj/extconf.rb +1 -1
  23. data/ext/oj/fast.c +24 -38
  24. data/ext/oj/intern.c +38 -42
  25. data/ext/oj/intern.h +3 -7
  26. data/ext/oj/mem.c +211 -217
  27. data/ext/oj/mem.h +10 -10
  28. data/ext/oj/mimic_json.c +39 -24
  29. data/ext/oj/object.c +12 -26
  30. data/ext/oj/odd.c +2 -1
  31. data/ext/oj/odd.h +4 -4
  32. data/ext/oj/oj.c +80 -81
  33. data/ext/oj/oj.h +56 -54
  34. data/ext/oj/parse.c +55 -118
  35. data/ext/oj/parse.h +5 -10
  36. data/ext/oj/parser.c +7 -8
  37. data/ext/oj/parser.h +7 -8
  38. data/ext/oj/rails.c +28 -59
  39. data/ext/oj/reader.c +5 -9
  40. data/ext/oj/reader.h +1 -1
  41. data/ext/oj/resolve.c +3 -4
  42. data/ext/oj/rxclass.c +1 -1
  43. data/ext/oj/rxclass.h +1 -1
  44. data/ext/oj/saj.c +4 -4
  45. data/ext/oj/saj2.c +32 -49
  46. data/ext/oj/saj2.h +1 -1
  47. data/ext/oj/scp.c +3 -14
  48. data/ext/oj/sparse.c +18 -67
  49. data/ext/oj/stream_writer.c +5 -18
  50. data/ext/oj/strict.c +16 -40
  51. data/ext/oj/string_writer.c +6 -14
  52. data/ext/oj/trace.h +27 -16
  53. data/ext/oj/usual.c +62 -61
  54. data/ext/oj/usual.h +6 -6
  55. data/ext/oj/util.h +1 -1
  56. data/ext/oj/val_stack.h +4 -4
  57. data/ext/oj/wab.c +16 -36
  58. data/lib/oj/active_support_helper.rb +0 -1
  59. data/lib/oj/bag.rb +7 -1
  60. data/lib/oj/easy_hash.rb +4 -5
  61. data/lib/oj/error.rb +0 -1
  62. data/lib/oj/json.rb +4 -2
  63. data/lib/oj/mimic.rb +4 -2
  64. data/lib/oj/state.rb +8 -5
  65. data/lib/oj/version.rb +1 -2
  66. data/lib/oj.rb +2 -0
  67. data/pages/Options.md +4 -0
  68. data/test/_test_active.rb +8 -9
  69. data/test/_test_active_mimic.rb +7 -8
  70. data/test/_test_mimic_rails.rb +17 -20
  71. data/test/activerecord/result_test.rb +5 -6
  72. data/test/files.rb +15 -15
  73. data/test/foo.rb +9 -52
  74. data/test/helper.rb +5 -8
  75. data/test/isolated/shared.rb +3 -2
  76. data/test/json_gem/json_addition_test.rb +2 -2
  77. data/test/json_gem/json_common_interface_test.rb +4 -4
  78. data/test/json_gem/json_encoding_test.rb +0 -0
  79. data/test/json_gem/json_ext_parser_test.rb +1 -0
  80. data/test/json_gem/json_fixtures_test.rb +3 -2
  81. data/test/json_gem/json_generator_test.rb +43 -32
  82. data/test/json_gem/json_generic_object_test.rb +11 -11
  83. data/test/json_gem/json_parser_test.rb +46 -46
  84. data/test/json_gem/json_string_matching_test.rb +9 -9
  85. data/test/mem.rb +13 -12
  86. data/test/perf.rb +21 -26
  87. data/test/perf_compat.rb +31 -33
  88. data/test/perf_dump.rb +25 -25
  89. data/test/perf_fast.rb +80 -82
  90. data/test/perf_file.rb +27 -29
  91. data/test/perf_object.rb +65 -69
  92. data/test/perf_once.rb +12 -11
  93. data/test/perf_parser.rb +41 -48
  94. data/test/perf_saj.rb +46 -54
  95. data/test/perf_scp.rb +57 -69
  96. data/test/perf_simple.rb +41 -39
  97. data/test/perf_strict.rb +68 -70
  98. data/test/perf_wab.rb +67 -69
  99. data/test/prec.rb +3 -3
  100. data/test/sample/change.rb +0 -1
  101. data/test/sample/dir.rb +0 -1
  102. data/test/sample/doc.rb +0 -1
  103. data/test/sample/file.rb +0 -1
  104. data/test/sample/group.rb +0 -1
  105. data/test/sample/hasprops.rb +0 -1
  106. data/test/sample/layer.rb +0 -1
  107. data/test/sample/rect.rb +0 -1
  108. data/test/sample/shape.rb +0 -1
  109. data/test/sample/text.rb +0 -1
  110. data/test/sample.rb +16 -16
  111. data/test/sample_json.rb +8 -8
  112. data/test/test_compat.rb +52 -52
  113. data/test/test_custom.rb +61 -51
  114. data/test/test_debian.rb +7 -10
  115. data/test/test_fast.rb +86 -90
  116. data/test/test_file.rb +24 -29
  117. data/test/test_gc.rb +5 -5
  118. data/test/test_generate.rb +5 -5
  119. data/test/test_hash.rb +4 -4
  120. data/test/test_integer_range.rb +9 -9
  121. data/test/test_null.rb +20 -20
  122. data/test/test_object.rb +78 -87
  123. data/test/test_parser.rb +4 -4
  124. data/test/test_parser_debug.rb +4 -4
  125. data/test/test_parser_saj.rb +27 -25
  126. data/test/test_parser_usual.rb +6 -6
  127. data/test/test_rails.rb +2 -2
  128. data/test/test_saj.rb +10 -8
  129. data/test/test_scp.rb +35 -35
  130. data/test/test_strict.rb +28 -32
  131. data/test/test_various.rb +140 -97
  132. data/test/test_wab.rb +46 -44
  133. data/test/test_writer.rb +47 -47
  134. data/test/tests.rb +7 -7
  135. data/test/tests_mimic.rb +6 -6
  136. data/test/tests_mimic_addition.rb +6 -6
  137. metadata +18 -30
  138. data/test/activesupport4/decoding_test.rb +0 -108
  139. data/test/activesupport4/encoding_test.rb +0 -531
  140. data/test/activesupport4/test_helper.rb +0 -41
  141. data/test/activesupport5/abstract_unit.rb +0 -45
  142. data/test/activesupport5/decoding_test.rb +0 -133
  143. data/test/activesupport5/encoding_test.rb +0 -500
  144. data/test/activesupport5/encoding_test_cases.rb +0 -98
  145. data/test/activesupport5/test_helper.rb +0 -72
  146. data/test/activesupport5/time_zone_test_helpers.rb +0 -39
  147. data/test/bar.rb +0 -11
  148. data/test/baz.rb +0 -16
  149. data/test/bug.rb +0 -16
  150. data/test/zoo.rb +0 -13
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: UTF-8
2
+ # frozen_string_literal: true
3
3
 
4
- $: << File.dirname(__FILE__)
4
+ $LOAD_PATH << __dir__
5
5
 
6
6
  require 'helper'
7
7
 
@@ -23,8 +23,10 @@ $json = %|{
23
23
  class AllSaj < Oj::Saj
24
24
  attr_accessor :calls
25
25
 
26
- def initialize()
26
+ def initialize
27
27
  @calls = []
28
+
29
+ super
28
30
  end
29
31
 
30
32
  def hash_start(key)
@@ -56,7 +58,7 @@ end # AllSaj
56
58
  class LocSaj
57
59
  attr_accessor :calls
58
60
 
59
- def initialize()
61
+ def initialize
60
62
  @calls = []
61
63
  end
62
64
 
@@ -126,7 +128,7 @@ class SajTest < Minitest::Test
126
128
  p = Oj::Parser.new(:saj)
127
129
  p.handler = handler
128
130
  p.parse(json)
129
- assert_equal([[:add_value, 12345, nil]], handler.calls)
131
+ assert_equal([[:add_value, 12_345, nil]], handler.calls)
130
132
  end
131
133
 
132
134
  def test_float
@@ -135,7 +137,7 @@ class SajTest < Minitest::Test
135
137
  p = Oj::Parser.new(:saj)
136
138
  p.handler = handler
137
139
  p.parse(json)
138
- assert_equal([[:add_value, 12345.6789, nil]], handler.calls)
140
+ assert_equal([[:add_value, 12_345.6789, nil]], handler.calls)
139
141
  end
140
142
 
141
143
  def test_float_exp
@@ -146,7 +148,7 @@ class SajTest < Minitest::Test
146
148
  p.parse(json)
147
149
  assert_equal(1, handler.calls.size)
148
150
  assert_equal(:add_value, handler.calls[0][0])
149
- assert_equal((12345.6789e7 * 10000).to_i, (handler.calls[0][1] * 10000).to_i)
151
+ assert_equal((12_345.6789e7 * 10_000).to_i, (handler.calls[0][1] * 10_000).to_i)
150
152
  end
151
153
 
152
154
  def test_bignum
@@ -157,7 +159,7 @@ class SajTest < Minitest::Test
157
159
  p.parse(json)
158
160
  assert_equal(1, handler.calls.size)
159
161
  assert_equal(:add_value, handler.calls[0][0])
160
- assert_equal(-118999, (handler.calls[0][1] * 10000).to_i)
162
+ assert_equal(-118_999, (handler.calls[0][1] * 10_000).to_i)
161
163
  end
162
164
 
163
165
  def test_bignum_loc
@@ -175,10 +177,10 @@ class SajTest < Minitest::Test
175
177
  p.handler = handler
176
178
  p.parse(json)
177
179
  assert_equal(6, handler.calls.size)
178
- assert_equal(1_923_380, (handler.calls[1][1] * 10000).to_i)
180
+ assert_equal(1_923_380, (handler.calls[1][1] * 10_000).to_i)
179
181
  handler.calls[1][1] = 1_923_380
180
182
  assert_equal([[:hash_start, nil, 1, 1],
181
- [:add_value, 1923380, 'width', 2, 30],
183
+ [:add_value, 1_923_380, 'width', 2, 30],
182
184
  [:hash_start, 'xaxis', 3, 12],
183
185
  [:add_value, 'y', 'anchor', 4, 17],
184
186
  [:hash_end, 'xaxis', 5, 3],
@@ -260,13 +262,13 @@ class SajTest < Minitest::Test
260
262
  p.handler = handler
261
263
  p.parse(json)
262
264
  assert_equal([
263
- [:array_start, nil],
265
+ [:array_start, nil],
264
266
  [:add_value, true, nil],
265
267
  [:array_end, nil],
266
- [:array_start, nil],
268
+ [:array_start, nil],
267
269
  [:add_value, false, nil],
268
270
  [:array_end, nil],
269
- ], handler.calls)
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
- [:array_start, nil],
280
- [:add_value, true, nil],
281
- [:add_value, false, nil],
282
- [:array_end, nil],
283
- ], handler.calls)
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
- [:array_start, nil],
293
- [:add_value, true, nil],
294
- [:add_value, false, nil],
295
- [:array_end, nil],
296
- ], handler.calls)
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
- [:array_start, nil],
307
+ [:array_start, nil],
306
308
  [:add_value, true, nil],
307
309
  [:array_end, nil],
308
- ], handler.calls)
310
+ ], handler.calls)
309
311
  end
310
312
 
311
313
  def test_loc
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
- $: << File.dirname(__FILE__)
4
+ $LOAD_PATH << __dir__
5
5
 
6
6
  require 'helper'
7
7
 
@@ -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)
@@ -67,7 +67,7 @@ class UsualTest < Minitest::Test
67
67
 
68
68
  def test_symbol_keys
69
69
  p = Oj::Parser.new(:usual)
70
- assert_equal(false, p.symbol_keys)
70
+ refute(p.symbol_keys)
71
71
  p.symbol_keys = true
72
72
  doc = p.parse('{"a": true, "b": false}')
73
73
  assert_equal({a: true, b: false}, doc)
data/test/test_rails.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
- $: << File.dirname(__FILE__)
4
+ $LOAD_PATH << __dir__
5
5
 
6
6
  require 'helper'
7
7
 
data/test/test_saj.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: UTF-8
2
+ # frozen_string_literal: true
3
3
 
4
- $: << File.dirname(__FILE__)
4
+ $LOAD_PATH << __dir__
5
5
 
6
6
  require 'helper'
7
7
 
@@ -23,8 +23,10 @@ $json = %{{
23
23
  class AllSaj < Oj::Saj
24
24
  attr_accessor :calls
25
25
 
26
- def initialize()
26
+ def initialize
27
27
  @calls = []
28
+
29
+ super
28
30
  end
29
31
 
30
32
  def hash_start(key)
@@ -95,14 +97,14 @@ class SajTest < Minitest::Test
95
97
  handler = AllSaj.new()
96
98
  json = %{12345}
97
99
  Oj.saj_parse(handler, json)
98
- assert_equal([[:add_value, 12345, nil]], handler.calls)
100
+ assert_equal([[:add_value, 12_345, nil]], handler.calls)
99
101
  end
100
102
 
101
103
  def test_float
102
104
  handler = AllSaj.new()
103
105
  json = %{12345.6789}
104
106
  Oj.saj_parse(handler, json)
105
- assert_equal([[:add_value, 12345.6789, nil]], handler.calls)
107
+ assert_equal([[:add_value, 12_345.6789, nil]], handler.calls)
106
108
  end
107
109
 
108
110
  def test_float_exp
@@ -111,7 +113,7 @@ class SajTest < Minitest::Test
111
113
  Oj.saj_parse(handler, json)
112
114
  assert_equal(1, handler.calls.size)
113
115
  assert_equal(:add_value, handler.calls[0][0])
114
- assert_equal((12345.6789e7 * 10000).to_i, (handler.calls[0][1] * 10000).to_i)
116
+ assert_equal((12_345.6789e7 * 10_000).to_i, (handler.calls[0][1] * 10_000).to_i)
115
117
  end
116
118
 
117
119
  def test_array_empty
@@ -177,10 +179,10 @@ class SajTest < Minitest::Test
177
179
  handler = AllSaj.new()
178
180
  json = %{12345xyz}
179
181
  Oj.saj_parse(handler, json)
180
- assert_equal([:add_value, 12345, nil], handler.calls.first)
182
+ assert_equal([:add_value, 12_345, nil], handler.calls.first)
181
183
  type, message, line, column = handler.calls.last
182
184
  assert_equal([:error, 1, 6], [type, line, column])
183
- assert_match(%r{invalid format, extra characters at line 1, column 6 \[(?:[A-Za-z]:\/)?(?:[a-z\.]+/)*saj\.c:\d+\]}, message)
185
+ assert_match(%r{invalid format, extra characters at line 1, column 6 \[(?:[A-Za-z]:/)?(?:[a-z.]+/)*saj\.c:\d+\]}, message)
184
186
  end
185
187
 
186
188
  end
data/test/test_scp.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: UTF-8
2
+ # frozen_string_literal: true
3
3
 
4
- $: << File.dirname(__FILE__)
4
+ $LOAD_PATH << __dir__
5
5
 
6
6
  require 'helper'
7
7
  require 'socket'
@@ -23,23 +23,22 @@ $json = %{{
23
23
  }}
24
24
 
25
25
  class NoHandler < Oj::ScHandler
26
- def initialize()
27
- end
28
26
  end
29
27
 
30
28
  class AllHandler < Oj::ScHandler
31
29
  attr_accessor :calls
32
30
 
33
- def initialize()
31
+ def initialize
32
+ super
34
33
  @calls = []
35
34
  end
36
35
 
37
- def hash_start()
36
+ def hash_start
38
37
  @calls << [:hash_start]
39
38
  {}
40
39
  end
41
40
 
42
- def hash_end()
41
+ def hash_end
43
42
  @calls << [:hash_end]
44
43
  end
45
44
 
@@ -47,15 +46,16 @@ class AllHandler < Oj::ScHandler
47
46
  @calls << [:hash_key, key]
48
47
  return 'too' if 'two' == key
49
48
  return :symbol if 'symbol' == key
49
+
50
50
  key
51
51
  end
52
52
 
53
- def array_start()
53
+ def array_start
54
54
  @calls << [:array_start]
55
55
  []
56
56
  end
57
57
 
58
- def array_end()
58
+ def array_end
59
59
  @calls << [:array_end]
60
60
  end
61
61
 
@@ -63,11 +63,11 @@ class AllHandler < Oj::ScHandler
63
63
  @calls << [:add_value, value]
64
64
  end
65
65
 
66
- def hash_set(h, key, value)
66
+ def hash_set(_h, key, value)
67
67
  @calls << [:hash_set, key, value]
68
68
  end
69
69
 
70
- def array_append(a, value)
70
+ def array_append(_a, value)
71
71
  @calls << [:array_append, value]
72
72
  end
73
73
 
@@ -75,18 +75,19 @@ end # AllHandler
75
75
 
76
76
  class Closer < AllHandler
77
77
  attr_accessor :io
78
+
78
79
  def initialize(io)
79
80
  super()
80
81
  @io = io
81
82
  end
82
83
 
83
- def hash_start()
84
+ def hash_start
84
85
  @calls << [:hash_start]
85
86
  @io.close
86
87
  {}
87
88
  end
88
89
 
89
- def hash_set(h, key, value)
90
+ def hash_set(_h, key, value)
90
91
  @calls << [:hash_set, key, value]
91
92
  @io.close
92
93
  end
@@ -135,14 +136,14 @@ class ScpTest < Minitest::Test
135
136
  handler = AllHandler.new()
136
137
  json = %{12345}
137
138
  Oj.sc_parse(handler, json)
138
- assert_equal([[:add_value, 12345]], handler.calls)
139
+ assert_equal([[:add_value, 12_345]], handler.calls)
139
140
  end
140
141
 
141
142
  def test_float
142
143
  handler = AllHandler.new()
143
144
  json = %{12345.6789}
144
145
  Oj.sc_parse(handler, json)
145
- assert_equal([[:add_value, 12345.6789]], handler.calls)
146
+ assert_equal([[:add_value, 12_345.6789]], handler.calls)
146
147
  end
147
148
 
148
149
  def test_float_exp
@@ -151,7 +152,7 @@ class ScpTest < Minitest::Test
151
152
  Oj.sc_parse(handler, json)
152
153
  assert_equal(1, handler.calls.size)
153
154
  assert_equal(:add_value, handler.calls[0][0])
154
- assert_equal((12345.6789e7 * 10000).to_i, (handler.calls[0][1] * 10000).to_i)
155
+ assert_equal((12_345.6789e7 * 10_000).to_i, (handler.calls[0][1] * 10_000).to_i)
155
156
  end
156
157
 
157
158
  def test_array_empty
@@ -230,9 +231,9 @@ class ScpTest < Minitest::Test
230
231
  [:array_start],
231
232
  [:hash_start],
232
233
  [:hash_key, 'num'],
233
- [:hash_set, "num", 3],
234
+ [:hash_set, 'num', 3],
234
235
  [:hash_key, 'string'],
235
- [:hash_set, "string", "message"],
236
+ [:hash_set, 'string', 'message'],
236
237
  [:hash_key, 'hash'],
237
238
  [:hash_start],
238
239
  [:hash_key, 'h2'],
@@ -243,17 +244,17 @@ class ScpTest < Minitest::Test
243
244
  [:array_append, 2],
244
245
  [:array_append, 3],
245
246
  [:array_end],
246
- [:hash_set, "a", []],
247
+ [:hash_set, 'a', []],
247
248
  [:hash_end],
248
- [:hash_set, "h2", {}],
249
+ [:hash_set, 'h2', {}],
249
250
  [:hash_end],
250
- [:hash_set, "hash", {}],
251
+ [:hash_set, 'hash', {}],
251
252
  [:hash_end],
252
253
  [:array_append, {}],
253
254
  [:array_end],
254
- [:hash_set, "array", []],
255
+ [:hash_set, 'array', []],
255
256
  [:hash_key, 'boolean'],
256
- [:hash_set, "boolean", true],
257
+ [:hash_set, 'boolean', true],
257
258
  [:hash_end],
258
259
  [:add_value, {}]], handler.calls)
259
260
  end
@@ -346,12 +347,10 @@ class ScpTest < Minitest::Test
346
347
  end
347
348
 
348
349
  def test_bad_bignum
349
- if '2.4.0' < RUBY_VERSION
350
- handler = AllHandler.new()
351
- json = %|{"big":-e123456789}|
352
- assert_raises Exception do # Can be either Oj::ParseError or ArgumentError depending on Ruby version
353
- Oj.sc_parse(handler, json)
354
- end
350
+ handler = AllHandler.new()
351
+ json = %|{"big":-e123456789}|
352
+ assert_raises Exception do # Can be either Oj::ParseError or ArgumentError depending on Ruby version
353
+ Oj.sc_parse(handler, json)
355
354
  end
356
355
  end
357
356
 
@@ -370,7 +369,7 @@ class ScpTest < Minitest::Test
370
369
  rescue Exception => e
371
370
  err = e.class.to_s
372
371
  end
373
- assert_equal("IOError", err)
372
+ assert_equal('IOError', err)
374
373
  assert_equal([[:hash_start],
375
374
  [:hash_key, 'one'],
376
375
  [:hash_set, 'one', true]], handler.calls)
@@ -379,8 +378,8 @@ class ScpTest < Minitest::Test
379
378
  write_io.write json[0..11]
380
379
  sleep(0.1)
381
380
  begin
382
- write_io.write json[12..-1]
383
- rescue Exception => e
381
+ write_io.write json[12..]
382
+ rescue Exception
384
383
  # ignore, should fail to write
385
384
  end
386
385
  write_io.close
@@ -397,15 +396,16 @@ class ScpTest < Minitest::Test
397
396
  # Not able to open a socket to run the test. Might be Travis.
398
397
  return
399
398
  end
400
- Thread.start(json) do |j|
399
+ Thread.start(json) do |_j|
401
400
  c = server.accept()
402
401
  c.puts json[0..11]
403
402
  10.times {
404
403
  break if c.closed?
404
+
405
405
  sleep(0.1)
406
406
  }
407
407
  unless c.closed?
408
- c.puts json[12..-1]
408
+ c.puts json[12..]
409
409
  c.close
410
410
  end
411
411
  end
@@ -422,7 +422,7 @@ class ScpTest < Minitest::Test
422
422
  rescue Exception => e
423
423
  err = e.class.to_s
424
424
  end
425
- assert_equal("IOError", err)
425
+ assert_equal('IOError', err)
426
426
  assert_equal([[:hash_start],
427
427
  [:hash_key, 'one'],
428
428
  [:hash_set, 'one', true]], handler.calls)
data/test/test_strict.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
- $: << File.dirname(__FILE__)
5
- $oj_dir = File.dirname(File.expand_path(File.dirname(__FILE__)))
4
+ $LOAD_PATH << __dir__
5
+ @oj_dir = File.dirname(File.expand_path(__dir__))
6
6
  %w(lib ext).each do |dir|
7
- $: << File.join($oj_dir, dir)
7
+ $LOAD_PATH << File.join(@oj_dir, dir)
8
8
  end
9
9
 
10
10
  require 'minitest'
@@ -52,16 +52,16 @@ class StrictJuice < Minitest::Test
52
52
 
53
53
  def test_fixnum
54
54
  dump_and_load(0, false)
55
- dump_and_load(12345, false)
56
- dump_and_load(-54321, false)
55
+ dump_and_load(12_345, false)
56
+ dump_and_load(-54_321, false)
57
57
  dump_and_load(1, false)
58
58
  end
59
59
 
60
60
  def test_float
61
61
  dump_and_load(0.0, false)
62
- dump_and_load(12345.6789, false)
62
+ dump_and_load(12_345.6789, false)
63
63
  dump_and_load(70.35, false)
64
- dump_and_load(-54321.012, false)
64
+ dump_and_load(-54_321.012, false)
65
65
  dump_and_load(1.7775, false)
66
66
  dump_and_load(2.5024, false)
67
67
  dump_and_load(2.48e16, false)
@@ -78,7 +78,7 @@ class StrictJuice < Minitest::Test
78
78
  assert(true)
79
79
  return
80
80
  end
81
- assert(false, "*** expected an exception")
81
+ assert(false, '*** expected an exception')
82
82
  end
83
83
 
84
84
  def test_infinity_dump
@@ -90,7 +90,7 @@ class StrictJuice < Minitest::Test
90
90
  assert(true)
91
91
  return
92
92
  end
93
- assert(false, "*** expected an exception")
93
+ assert(false, '*** expected an exception')
94
94
  end
95
95
 
96
96
  def test_neg_infinity_dump
@@ -102,7 +102,7 @@ class StrictJuice < Minitest::Test
102
102
  assert(true)
103
103
  return
104
104
  end
105
- assert(false, "*** expected an exception")
105
+ assert(false, '*** expected an exception')
106
106
  end
107
107
 
108
108
  def test_string
@@ -115,15 +115,11 @@ class StrictJuice < Minitest::Test
115
115
  def test_encode
116
116
  opts = Oj.default_options
117
117
  Oj.default_options = { :ascii_only => false }
118
- unless 'jruby' == $ruby
119
- dump_and_load("ぴーたー", false)
120
- end
118
+ dump_and_load('ぴーたー', false)
121
119
  Oj.default_options = { :ascii_only => true }
122
- json = Oj.dump("ぴーたー")
120
+ json = Oj.dump('ぴーたー')
123
121
  assert_equal(%{"\\u3074\\u30fc\\u305f\\u30fc"}, json)
124
- unless 'jruby' == $ruby
125
- dump_and_load("ぴーたー", false)
126
- end
122
+ dump_and_load('ぴーたー', false)
127
123
  Oj.default_options = opts
128
124
  end
129
125
 
@@ -152,17 +148,17 @@ class StrictJuice < Minitest::Test
152
148
  end
153
149
 
154
150
  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)
151
+ 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
152
  end
157
153
 
158
154
  def test_deep_nest
159
155
  skip 'TruffleRuby causes SEGV' if RUBY_ENGINE == 'truffleruby'
160
156
 
161
157
  begin
162
- n = 10000
163
- Oj.strict_load('[' * n + ']' * n)
158
+ n = 10_000
159
+ Oj.strict_load(('[' * n) + (']' * n))
164
160
  rescue Exception => e
165
- assert(false, e.message)
161
+ refute(e.message)
166
162
  end
167
163
  end
168
164
 
@@ -209,7 +205,7 @@ class StrictJuice < Minitest::Test
209
205
  assert(true)
210
206
  return
211
207
  end
212
- assert(false, "*** expected an exception")
208
+ assert(false, '*** expected an exception')
213
209
  end
214
210
 
215
211
  def test_bignum_object
@@ -238,7 +234,7 @@ class StrictJuice < Minitest::Test
238
234
  assert(true)
239
235
  return
240
236
  end
241
- assert(false, "*** expected an exception")
237
+ assert(false, '*** expected an exception')
242
238
  end
243
239
 
244
240
  def test_range
@@ -248,7 +244,7 @@ class StrictJuice < Minitest::Test
248
244
  assert(true)
249
245
  return
250
246
  end
251
- assert(false, "*** expected an exception")
247
+ assert(false, '*** expected an exception')
252
248
  end
253
249
 
254
250
  # Stream IO
@@ -265,13 +261,13 @@ class StrictJuice < Minitest::Test
265
261
  end
266
262
 
267
263
  def test_io_file
268
- filename = File.join(File.dirname(__FILE__), 'open_file_test.json')
269
- File.open(filename, 'w') { |f| f.write(%{{
264
+ filename = File.join(__dir__, 'open_file_test.json')
265
+ File.write(filename, %{{
270
266
  "x":true,
271
267
  "y":58,
272
268
  "z": [1,2,3]
273
269
  }
274
- }) }
270
+ })
275
271
  f = File.new(filename)
276
272
  obj = Oj.strict_load(f)
277
273
  f.close()
@@ -291,7 +287,7 @@ class StrictJuice < Minitest::Test
291
287
  assert(true)
292
288
  return
293
289
  end
294
- assert(false, "*** expected an exception")
290
+ assert(false, '*** expected an exception')
295
291
  end
296
292
 
297
293
  def test_class
@@ -301,7 +297,7 @@ class StrictJuice < Minitest::Test
301
297
  assert(true)
302
298
  return
303
299
  end
304
- assert(false, "*** expected an exception")
300
+ assert(false, '*** expected an exception')
305
301
  end
306
302
 
307
303
  def test_module
@@ -311,7 +307,7 @@ class StrictJuice < Minitest::Test
311
307
  assert(true)
312
308
  return
313
309
  end
314
- assert(false, "*** expected an exception")
310
+ assert(false, '*** expected an exception')
315
311
  end
316
312
 
317
313
  # symbol_keys option
@@ -423,7 +419,7 @@ class StrictJuice < Minitest::Test
423
419
  def dump_and_load(obj, trace=false)
424
420
  json = Oj.dump(obj, :indent => 2)
425
421
  puts json if trace
426
- loaded = Oj.strict_load(json);
422
+ loaded = Oj.strict_load(json)
427
423
  if obj.nil?
428
424
  assert_nil(loaded)
429
425
  else