oj 3.14.2 → 3.15.0

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