oj 3.14.3 → 3.15.1

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/ext/oj/code.c +3 -10
  4. data/ext/oj/compat.c +5 -18
  5. data/ext/oj/custom.c +10 -28
  6. data/ext/oj/dump.c +40 -10
  7. data/ext/oj/dump.h +1 -4
  8. data/ext/oj/extconf.rb +4 -2
  9. data/ext/oj/fast.c +3 -6
  10. data/ext/oj/mimic_json.c +21 -1
  11. data/ext/oj/object.c +7 -21
  12. data/ext/oj/oj.c +24 -4
  13. data/ext/oj/oj.h +10 -6
  14. data/ext/oj/parse.c +3 -5
  15. data/ext/oj/parse.h +16 -14
  16. data/ext/oj/parser.h +2 -2
  17. data/ext/oj/reader.c +1 -3
  18. data/ext/oj/saj.c +1 -1
  19. data/ext/oj/strict.c +9 -27
  20. data/ext/oj/wab.c +9 -27
  21. data/lib/oj/active_support_helper.rb +2 -3
  22. data/lib/oj/json.rb +156 -149
  23. data/lib/oj/mimic.rb +3 -1
  24. data/lib/oj/version.rb +1 -1
  25. data/lib/oj.rb +3 -0
  26. data/pages/Options.md +4 -0
  27. data/test/_test_active.rb +8 -8
  28. data/test/_test_active_mimic.rb +7 -7
  29. data/test/_test_mimic_rails.rb +17 -19
  30. data/test/files.rb +14 -14
  31. data/test/foo.rb +15 -10
  32. data/test/helper.rb +4 -4
  33. data/test/mem.rb +8 -7
  34. data/test/perf.rb +21 -26
  35. data/test/perf_compat.rb +30 -32
  36. data/test/perf_dump.rb +27 -27
  37. data/test/perf_fast.rb +80 -82
  38. data/test/perf_file.rb +27 -29
  39. data/test/perf_object.rb +65 -68
  40. data/test/perf_once.rb +8 -7
  41. data/test/perf_parser.rb +40 -46
  42. data/test/perf_saj.rb +46 -53
  43. data/test/perf_scp.rb +57 -69
  44. data/test/perf_simple.rb +40 -38
  45. data/test/perf_strict.rb +68 -70
  46. data/test/perf_wab.rb +67 -69
  47. data/test/prec.rb +3 -3
  48. data/test/sample.rb +16 -15
  49. data/test/sample_json.rb +8 -7
  50. data/test/test_compat.rb +44 -46
  51. data/test/test_custom.rb +56 -42
  52. data/test/test_debian.rb +6 -9
  53. data/test/test_fast.rb +78 -72
  54. data/test/test_file.rb +16 -21
  55. data/test/test_gc.rb +5 -5
  56. data/test/test_generate.rb +5 -5
  57. data/test/test_hash.rb +4 -4
  58. data/test/test_integer_range.rb +9 -9
  59. data/test/test_null.rb +18 -20
  60. data/test/test_object.rb +76 -86
  61. data/test/test_parser.rb +4 -4
  62. data/test/test_parser_debug.rb +4 -4
  63. data/test/test_parser_saj.rb +31 -31
  64. data/test/test_parser_usual.rb +3 -3
  65. data/test/test_rails.rb +2 -2
  66. data/test/test_saj.rb +8 -8
  67. data/test/test_scp.rb +29 -29
  68. data/test/test_strict.rb +25 -31
  69. data/test/test_various.rb +121 -75
  70. data/test/test_wab.rb +43 -42
  71. data/test/test_writer.rb +46 -46
  72. data/test/tests.rb +7 -7
  73. data/test/tests_mimic.rb +6 -6
  74. data/test/tests_mimic_addition.rb +6 -6
  75. metadata +3 -6
  76. data/test/bar.rb +0 -11
  77. data/test/baz.rb +0 -16
  78. data/test/bug.rb +0 -16
  79. data/test/zoo.rb +0 -13
data/test/test_object.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
 
@@ -20,12 +20,12 @@ class ObjectJuice < Minitest::Test
20
20
  end
21
21
  alias == eql?
22
22
 
23
- def to_json(*a)
23
+ def to_json(*_a)
24
24
  %{{"json_class":"#{self.class}","x":#{@x},"y":#{@y}}}
25
25
  end
26
26
 
27
27
  def self.json_create(h)
28
- self.new(h['x'], h['y'])
28
+ new(h['x'], h['y'])
29
29
  end
30
30
  end # Jeez
31
31
 
@@ -45,30 +45,26 @@ class ObjectJuice < Minitest::Test
45
45
  end # Jam
46
46
 
47
47
  class Jazz < Jam
48
- def initialize(x, y)
49
- super
50
- end
51
- def to_hash()
48
+
49
+ def to_hash
52
50
  { 'json_class' => self.class.to_s, 'x' => @x, 'y' => @y }
53
51
  end
52
+
54
53
  def self.json_create(h)
55
- self.new(h['x'], h['y'])
54
+ new(h['x'], h['y'])
56
55
  end
57
56
  end # Jazz
58
57
 
59
58
  class Orange < Jam
60
- def initialize(x, y)
61
- super
62
- end
63
59
 
64
- def as_json()
60
+ def as_json
65
61
  { :json_class => self.class,
66
62
  :x => @x,
67
63
  :y => @y }
68
64
  end
69
65
 
70
66
  def self.json_create(h)
71
- self.new(h['x'], h['y'])
67
+ new(h['x'], h['y'])
72
68
  end
73
69
  end
74
70
 
@@ -77,24 +73,21 @@ class ObjectJuice < Minitest::Test
77
73
  module Three
78
74
  class Deep
79
75
 
80
- def initialize()
81
- end
82
-
83
76
  def eql?(o)
84
77
  self.class == o.class
85
78
  end
86
79
  alias == eql?
87
80
 
88
- def to_hash()
89
- {'json_class' => "#{self.class.name}"}
81
+ def to_hash
82
+ {'json_class' => self.class.name.to_s}
90
83
  end
91
84
 
92
- def to_json(*a)
85
+ def to_json(*_a)
93
86
  %{{"json_class":"#{self.class.name}"}}
94
87
  end
95
88
 
96
- def self.json_create(h)
97
- self.new()
89
+ def self.json_create(_h)
90
+ new()
98
91
  end
99
92
  end # Deep
100
93
  end # Three
@@ -102,7 +95,6 @@ class ObjectJuice < Minitest::Test
102
95
 
103
96
  class Stuck2 < Struct.new(:a, :b)
104
97
  end
105
-
106
98
  end # One
107
99
 
108
100
  class Stuck < Struct.new(:a, :b)
@@ -115,7 +107,7 @@ class ObjectJuice < Minitest::Test
115
107
  @safe = safe
116
108
  end
117
109
 
118
- def safe?()
110
+ def safe?
119
111
  @safe
120
112
  end
121
113
 
@@ -128,8 +120,8 @@ class ObjectJuice < Minitest::Test
128
120
  end
129
121
  alias == eql?
130
122
 
131
- def inspect()
132
- return super + '(' + @safe + ')'
123
+ def inspect
124
+ super + '(' + @safe + ')'
133
125
  end
134
126
  end
135
127
 
@@ -182,7 +174,7 @@ class ObjectJuice < Minitest::Test
182
174
  @json = j
183
175
  end
184
176
 
185
- def to_json(*a)
177
+ def to_json(*_a)
186
178
  @json
187
179
  end
188
180
 
@@ -206,7 +198,7 @@ class ObjectJuice < Minitest::Test
206
198
  @hash = h
207
199
  end
208
200
 
209
- def dump()
201
+ def dump
210
202
  @hash
211
203
  end
212
204
 
@@ -237,16 +229,16 @@ class ObjectJuice < Minitest::Test
237
229
 
238
230
  def test_fixnum
239
231
  dump_and_load(0, false)
240
- dump_and_load(12345, false)
241
- dump_and_load(-54321, false)
232
+ dump_and_load(12_345, false)
233
+ dump_and_load(-54_321, false)
242
234
  dump_and_load(1, false)
243
235
  end
244
236
 
245
237
  def test_float
246
238
  dump_and_load(0.0, false)
247
- dump_and_load(12345.6789, false)
239
+ dump_and_load(12_345.6789, false)
248
240
  dump_and_load(70.35, false)
249
- dump_and_load(-54321.012, false)
241
+ dump_and_load(-54_321.012, false)
250
242
  dump_and_load(1.7775, false)
251
243
  dump_and_load(2.5024, false)
252
244
  dump_and_load(2.48e16, false)
@@ -256,8 +248,8 @@ class ObjectJuice < Minitest::Test
256
248
  # NaN does not always == NaN
257
249
  json = Oj.dump(0/0.0, :mode => :object)
258
250
  assert_equal('3.3e14159265358979323846', json)
259
- loaded = Oj.load(json);
260
- assert_equal(true, loaded.nan?)
251
+ loaded = Oj.load(json)
252
+ assert_predicate(loaded, :nan?)
261
253
  end
262
254
 
263
255
  def test_string
@@ -269,18 +261,18 @@ class ObjectJuice < Minitest::Test
269
261
 
270
262
  def test_symbol
271
263
  dump_and_load(:abc, false)
272
- dump_and_load(":abc", false)
273
- dump_and_load(':xyz'.to_sym, false)
264
+ dump_and_load(':abc', false)
265
+ dump_and_load(:":xyz", false)
274
266
  end
275
267
 
276
268
  def test_encode
277
269
  opts = Oj.default_options
278
270
  Oj.default_options = { :ascii_only => false }
279
- dump_and_load("ぴーたー", false)
271
+ dump_and_load('ぴーたー', false)
280
272
  Oj.default_options = { :ascii_only => true }
281
- json = Oj.dump("ぴーたー")
273
+ json = Oj.dump('ぴーたー')
282
274
  assert_equal(%{"\\u3074\\u30fc\\u305f\\u30fc"}, json)
283
- dump_and_load("ぴーたー", false)
275
+ dump_and_load('ぴーたー', false)
284
276
  Oj.default_options = opts
285
277
  end
286
278
 
@@ -376,15 +368,13 @@ class ObjectJuice < Minitest::Test
376
368
  end
377
369
 
378
370
  def test_io_file
379
- filename = File.join(File.dirname(__FILE__), 'open_file_test.json')
380
- File.open(filename, 'w') { |f|
381
- f.write(%{{
371
+ filename = File.join(__dir__, 'open_file_test.json')
372
+ File.write(filename, %{{
382
373
  "x":true,
383
374
  "y":58,
384
375
  "z": [1,2,3]
385
376
  }
386
377
  })
387
- }
388
378
  f = File.new(filename)
389
379
  obj = Oj.object_load(f)
390
380
  f.close()
@@ -414,7 +404,7 @@ class ObjectJuice < Minitest::Test
414
404
  def test_non_str_hash_object
415
405
  json = Oj.dump({ 1 => true, :sim => nil }, :mode => :object)
416
406
  h = Oj.load(json, :mode => :strict)
417
- assert_equal({"^#1" => [1, true], ":sim" => nil}, h)
407
+ assert_equal({'^#1' => [1, true], ':sim' => nil}, h)
418
408
  h = Oj.load(json, :mode => :object)
419
409
  assert_equal({ 1 => true, :sim => nil }, h)
420
410
  end
@@ -466,8 +456,8 @@ class ObjectJuice < Minitest::Test
466
456
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
467
457
  # separately along with utc.
468
458
  json = Oj.dump(t, :mode => :object, :time_format => :xmlschema)
469
- #puts "*** json for test_xml_time '#{json}'"
470
- loaded = Oj.object_load(json);
459
+ # puts "*** json for test_xml_time '#{json}'"
460
+ loaded = Oj.object_load(json)
471
461
  assert_equal(t.tv_sec, loaded.tv_sec)
472
462
  if t.respond_to?(:tv_nsec)
473
463
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -484,7 +474,7 @@ class ObjectJuice < Minitest::Test
484
474
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
485
475
  # separately along with utc.
486
476
  json = Oj.dump(t, :mode => :object, :time_format => :xmlschema)
487
- loaded = Oj.object_load(json);
477
+ loaded = Oj.object_load(json)
488
478
  assert_equal(t.tv_sec, loaded.tv_sec)
489
479
  if t.respond_to?(:tv_nsec)
490
480
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -501,8 +491,8 @@ class ObjectJuice < Minitest::Test
501
491
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
502
492
  # separately along with utc.
503
493
  json = Oj.dump(t, :mode => :object, :time_format => :ruby)
504
- #puts "*** json for test_ruby_time '#{json}'"
505
- loaded = Oj.object_load(json);
494
+ # puts "*** json for test_ruby_time '#{json}'"
495
+ loaded = Oj.object_load(json)
506
496
  assert_equal(t.tv_sec, loaded.tv_sec)
507
497
  if t.respond_to?(:tv_nsec)
508
498
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -514,14 +504,14 @@ class ObjectJuice < Minitest::Test
514
504
  end
515
505
 
516
506
  def test_ruby_time_12345
517
- t = Time.new(2015, 1, 5, 21, 37, 7.123456789, 12345/60*60)
507
+ t = Time.new(2015, 1, 5, 21, 37, 7.123456789, 12_345/60*60)
518
508
  # The fractional seconds are not always recreated exactly which causes a
519
509
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
520
510
  # separately along with utc.
521
511
  json = Oj.dump(t, :mode => :object, :time_format => :ruby)
522
- #puts "*** json for test_ruby_time '#{json}'"
523
- loaded = Oj.object_load(json);
524
- #puts "*** loaded: #{loaded}"
512
+ # puts "*** json for test_ruby_time '#{json}'"
513
+ loaded = Oj.object_load(json)
514
+ # puts "*** loaded: #{loaded}"
525
515
  assert_equal(t.tv_sec, loaded.tv_sec)
526
516
  if t.respond_to?(:tv_nsec)
527
517
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -538,8 +528,8 @@ class ObjectJuice < Minitest::Test
538
528
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
539
529
  # separately along with utc.
540
530
  json = Oj.dump(t, :mode => :object, :time_format => :ruby)
541
- #puts json
542
- loaded = Oj.object_load(json);
531
+ # puts json
532
+ loaded = Oj.object_load(json)
543
533
  assert_equal(t.tv_sec, loaded.tv_sec)
544
534
  if t.respond_to?(:tv_nsec)
545
535
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -559,8 +549,8 @@ class ObjectJuice < Minitest::Test
559
549
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
560
550
  # separately along with utc.
561
551
  json = Oj.dump(t, :mode => :object, :time_format => :unix_zone)
562
- #puts json
563
- loaded = Oj.object_load(json);
552
+ # puts json
553
+ loaded = Oj.object_load(json)
564
554
  assert_equal(t.tv_sec, loaded.tv_sec)
565
555
  if t.respond_to?(:tv_nsec)
566
556
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -577,8 +567,8 @@ class ObjectJuice < Minitest::Test
577
567
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
578
568
  # separately along with utc.
579
569
  json = Oj.dump(t, :mode => :object, :time_format => :unix_zone)
580
- #puts json
581
- loaded = Oj.object_load(json);
570
+ # puts json
571
+ loaded = Oj.object_load(json)
582
572
  assert_equal(t.tv_sec, loaded.tv_sec)
583
573
  if t.respond_to?(:tv_nsec)
584
574
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -590,13 +580,13 @@ class ObjectJuice < Minitest::Test
590
580
  end
591
581
 
592
582
  def test_time_unix_zone_12345
593
- t = Time.new(2015, 1, 5, 21, 37, 7.123456789, 12345)
583
+ t = Time.new(2015, 1, 5, 21, 37, 7.123456789, 12_345)
594
584
  # The fractional seconds are not always recreated exactly which causes a
595
585
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
596
586
  # separately along with utc.
597
587
  json = Oj.dump(t, :mode => :object, :time_format => :unix_zone)
598
- #puts json
599
- loaded = Oj.object_load(json);
588
+ # puts json
589
+ loaded = Oj.object_load(json)
600
590
  assert_equal(t.tv_sec, loaded.tv_sec)
601
591
  if t.respond_to?(:tv_nsec)
602
592
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -613,8 +603,8 @@ class ObjectJuice < Minitest::Test
613
603
  # mismatch so instead the seconds, nsecs, and gmt_offset are checked
614
604
  # separately along with utc.
615
605
  json = Oj.dump(t, :mode => :object, :time_format => :unix_zone)
616
- #puts json
617
- loaded = Oj.object_load(json);
606
+ # puts json
607
+ loaded = Oj.object_load(json)
618
608
  assert_equal(t.tv_sec, loaded.tv_sec)
619
609
  if t.respond_to?(:tv_nsec)
620
610
  assert_equal(t.tv_nsec, loaded.tv_nsec)
@@ -640,20 +630,20 @@ class ObjectJuice < Minitest::Test
640
630
  begin
641
631
  Oj.object_load(json)
642
632
  rescue Exception => e
643
- assert_equal("ArgumentError", e.class().name)
633
+ assert_equal('ArgumentError', e.class().name)
644
634
  return
645
635
  end
646
- assert(false, "*** expected an exception")
636
+ assert(false, '*** expected an exception')
647
637
  end
648
638
 
649
639
  def test_json_object_not_hat_hash
650
640
  json = %{{"^#x":[1,2]}}
651
641
  h = Oj.object_load(json)
652
- assert_equal({1 => 2}, h);
642
+ assert_equal({1 => 2}, h)
653
643
 
654
644
  json = %{{"~#x":[1,2]}}
655
645
  h = Oj.object_load(json)
656
- assert_equal({'~#x' => [1, 2]}, h);
646
+ assert_equal({'~#x' => [1, 2]}, h)
657
647
  end
658
648
 
659
649
  def test_json_struct
@@ -670,14 +660,14 @@ class ObjectJuice < Minitest::Test
670
660
  s = Struct.new(:x, :y)
671
661
  obj = s.new(1, 2)
672
662
  json = Oj.dump(obj, :indent => 2, :mode => :object)
673
- #puts json
674
- loaded = Oj.object_load(json);
663
+ # puts json
664
+ loaded = Oj.object_load(json)
675
665
  assert_equal(obj.members, loaded.members)
676
666
  assert_equal(obj.values, loaded.values)
677
667
  end
678
668
 
679
669
  def test_json_non_str_hash
680
- obj = { 59 => "young", false => true }
670
+ obj = { 59 => 'young', false => true }
681
671
  dump_and_load(obj, false)
682
672
  end
683
673
 
@@ -781,24 +771,24 @@ class ObjectJuice < Minitest::Test
781
771
  err = e
782
772
  end
783
773
  json = Oj.dump(err, :mode => :object, :indent => 2)
784
- #puts "*** #{json}"
774
+ # puts "*** #{json}"
785
775
  e2 = Oj.load(json, :mode => :strict)
786
776
  assert_equal(err.class.to_s, e2['^o'])
787
777
  assert_equal(err.message, e2['~mesg'])
788
778
  assert_equal(err.backtrace, e2['~bt'])
789
779
  e2 = Oj.load(json, :mode => :object)
790
780
  if 'rubinius' == $ruby
791
- assert_equal(e.class, e2.class);
792
- assert_equal(e.message, e2.message);
793
- assert_equal(e.backtrace, e2.backtrace);
781
+ assert_equal(e.class, e2.class)
782
+ assert_equal(e.message, e2.message)
783
+ assert_equal(e.backtrace, e2.backtrace)
794
784
  else
795
- assert_equal(e, e2);
785
+ assert_equal(e, e2)
796
786
  end
797
787
  end
798
788
 
799
- class SubX < Exception
789
+ class SubX < StandardError
800
790
  def initialize
801
- super("sub")
791
+ super('sub')
802
792
  @xyz = 123
803
793
  end
804
794
  end
@@ -811,13 +801,13 @@ class ObjectJuice < Minitest::Test
811
801
  err = e
812
802
  end
813
803
  json = Oj.dump(err, :mode => :object, :indent => 2)
814
- #puts "*** #{json}"
804
+ # puts "*** #{json}"
815
805
  e2 = Oj.load(json, :mode => :strict)
816
806
  assert_equal(err.class.to_s, e2['^o'])
817
807
  assert_equal(err.message, e2['~mesg'])
818
808
  assert_equal(err.backtrace, e2['~bt'])
819
809
  e2 = Oj.load(json, :mode => :object)
820
- assert_equal(e, e2);
810
+ assert_equal(e, e2)
821
811
  end
822
812
 
823
813
  def test_range_object
@@ -826,7 +816,7 @@ class ObjectJuice < Minitest::Test
826
816
  if 'ruby' == $ruby
827
817
  assert_equal(%{{"^u":["Range",1,7,false]}}, json)
828
818
  else
829
- assert(%{{"^O":"Range","begin":1,"end":7,"exclude_end?":false}} == json)
819
+ assert_equal(%{{"^O":"Range","begin":1,"end":7,"exclude_end?":false}}, json)
830
820
  end
831
821
  dump_and_load(1..7, false)
832
822
  dump_and_load(1..1, false)
@@ -958,7 +948,7 @@ class ObjectJuice < Minitest::Test
958
948
 
959
949
  def test_odd_datetime
960
950
  dump_and_load(DateTime.new(2012, 6, 19, 13, 5, Rational(4, 3)), false)
961
- dump_and_load(DateTime.new(2012, 6, 19, 13, 5, Rational(7123456789, 1000000000)), false)
951
+ dump_and_load(DateTime.new(2012, 6, 19, 13, 5, Rational(7_123_456_789, 1_000_000_000)), false)
962
952
  end
963
953
 
964
954
  def test_bag
@@ -968,13 +958,13 @@ class ObjectJuice < Minitest::Test
968
958
  "y":58 }}
969
959
  obj = Oj.load(json, :mode => :object, :auto_define => true)
970
960
  assert_equal('ObjectJuice::Jem', obj.class.name)
971
- assert_equal(true, obj.x)
961
+ assert(obj.x)
972
962
  assert_equal(58, obj.y)
973
963
  end
974
964
 
975
965
  def test_odd_string
976
966
  Oj.register_odd(Strung, Strung, :create, :to_s, 'safe?')
977
- s = Strung.new("Pete", true)
967
+ s = Strung.new('Pete', true)
978
968
  dump_and_load(s, false)
979
969
  end
980
970
 
@@ -995,7 +985,7 @@ class ObjectJuice < Minitest::Test
995
985
  end
996
986
 
997
987
  def test_auto_string
998
- s = AutoStrung.new("Pete", true)
988
+ s = AutoStrung.new('Pete', true)
999
989
  dump_and_load(s, false)
1000
990
  end
1001
991
 
@@ -1014,7 +1004,7 @@ class ObjectJuice < Minitest::Test
1014
1004
  def dump_and_load(obj, trace=false)
1015
1005
  json = Oj.dump(obj, :indent => 2, :mode => :object)
1016
1006
  puts json if trace
1017
- loaded = Oj.object_load(json);
1007
+ loaded = Oj.object_load(json)
1018
1008
  if obj.nil?
1019
1009
  assert_nil(loaded)
1020
1010
  else
data/test/test_parser.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 'test_parser_usual'
@@ -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'
@@ -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,7 +23,7 @@ $json = %|{
23
23
  class AllSaj < Oj::Saj
24
24
  attr_accessor :calls
25
25
 
26
- def initialize()
26
+ def initialize
27
27
  @calls = []
28
28
 
29
29
  super
@@ -58,7 +58,7 @@ end # AllSaj
58
58
  class LocSaj
59
59
  attr_accessor :calls
60
60
 
61
- def initialize()
61
+ def initialize
62
62
  @calls = []
63
63
  end
64
64
 
@@ -128,7 +128,7 @@ class SajTest < Minitest::Test
128
128
  p = Oj::Parser.new(:saj)
129
129
  p.handler = handler
130
130
  p.parse(json)
131
- assert_equal([[:add_value, 12345, nil]], handler.calls)
131
+ assert_equal([[:add_value, 12_345, nil]], handler.calls)
132
132
  end
133
133
 
134
134
  def test_float
@@ -137,7 +137,7 @@ class SajTest < Minitest::Test
137
137
  p = Oj::Parser.new(:saj)
138
138
  p.handler = handler
139
139
  p.parse(json)
140
- assert_equal([[:add_value, 12345.6789, nil]], handler.calls)
140
+ assert_equal([[:add_value, 12_345.6789, nil]], handler.calls)
141
141
  end
142
142
 
143
143
  def test_float_exp
@@ -148,7 +148,7 @@ class SajTest < Minitest::Test
148
148
  p.parse(json)
149
149
  assert_equal(1, handler.calls.size)
150
150
  assert_equal(:add_value, handler.calls[0][0])
151
- 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)
152
152
  end
153
153
 
154
154
  def test_bignum
@@ -159,7 +159,7 @@ class SajTest < Minitest::Test
159
159
  p.parse(json)
160
160
  assert_equal(1, handler.calls.size)
161
161
  assert_equal(:add_value, handler.calls[0][0])
162
- assert_equal(-118999, (handler.calls[0][1] * 10000).to_i)
162
+ assert_equal(-118_999, (handler.calls[0][1] * 10_000).to_i)
163
163
  end
164
164
 
165
165
  def test_bignum_loc
@@ -177,10 +177,10 @@ class SajTest < Minitest::Test
177
177
  p.handler = handler
178
178
  p.parse(json)
179
179
  assert_equal(6, handler.calls.size)
180
- 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)
181
181
  handler.calls[1][1] = 1_923_380
182
182
  assert_equal([[:hash_start, nil, 1, 1],
183
- [:add_value, 1923380, 'width', 2, 30],
183
+ [:add_value, 1_923_380, 'width', 2, 30],
184
184
  [:hash_start, 'xaxis', 3, 12],
185
185
  [:add_value, 'y', 'anchor', 4, 17],
186
186
  [:hash_end, 'xaxis', 5, 3],
@@ -262,13 +262,13 @@ class SajTest < Minitest::Test
262
262
  p.handler = handler
263
263
  p.parse(json)
264
264
  assert_equal([
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)
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)
272
272
  end
273
273
 
274
274
  def test_io
@@ -278,11 +278,11 @@ class SajTest < Minitest::Test
278
278
  p.handler = handler
279
279
  p.load(StringIO.new(json))
280
280
  assert_equal([
281
- [:array_start, nil],
282
- [:add_value, true, nil],
283
- [:add_value, false, nil],
284
- [:array_end, nil],
285
- ], handler.calls)
281
+ [:array_start, nil],
282
+ [:add_value, true, nil],
283
+ [:add_value, false, nil],
284
+ [:array_end, nil],
285
+ ], handler.calls)
286
286
  end
287
287
 
288
288
  def test_file
@@ -291,11 +291,11 @@ class SajTest < Minitest::Test
291
291
  p.handler = handler
292
292
  p.file('saj_test.json')
293
293
  assert_equal([
294
- [:array_start, nil],
295
- [:add_value, true, nil],
296
- [:add_value, false, nil],
297
- [:array_end, nil],
298
- ], handler.calls)
294
+ [:array_start, nil],
295
+ [:add_value, true, nil],
296
+ [:add_value, false, nil],
297
+ [:array_end, nil],
298
+ ], handler.calls)
299
299
  end
300
300
 
301
301
  def test_default
@@ -304,10 +304,10 @@ class SajTest < Minitest::Test
304
304
  Oj::Parser.saj.handler = handler
305
305
  Oj::Parser.saj.parse(json)
306
306
  assert_equal([
307
- [:array_start, nil],
308
- [:add_value, true, nil],
309
- [:array_end, nil],
310
- ], handler.calls)
307
+ [:array_start, nil],
308
+ [:add_value, true, nil],
309
+ [:array_end, nil],
310
+ ], handler.calls)
311
311
  end
312
312
 
313
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
 
@@ -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