oj 3.7.4 → 3.13.21

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