oj 3.14.3 → 3.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/ext/oj/custom.c +5 -15
  4. data/ext/oj/dump.c +27 -2
  5. data/ext/oj/mimic_json.c +21 -0
  6. data/ext/oj/object.c +7 -21
  7. data/ext/oj/oj.c +20 -0
  8. data/ext/oj/oj.h +3 -0
  9. data/ext/oj/strict.c +9 -27
  10. data/ext/oj/wab.c +9 -27
  11. data/lib/oj/version.rb +1 -1
  12. data/lib/oj.rb +3 -0
  13. data/pages/Options.md +4 -0
  14. data/test/_test_active.rb +8 -8
  15. data/test/_test_active_mimic.rb +7 -7
  16. data/test/_test_mimic_rails.rb +17 -19
  17. data/test/files.rb +14 -14
  18. data/test/foo.rb +5 -5
  19. data/test/helper.rb +4 -4
  20. data/test/mem.rb +8 -7
  21. data/test/perf.rb +21 -26
  22. data/test/perf_compat.rb +30 -32
  23. data/test/perf_dump.rb +25 -25
  24. data/test/perf_fast.rb +80 -82
  25. data/test/perf_file.rb +27 -29
  26. data/test/perf_object.rb +65 -68
  27. data/test/perf_once.rb +8 -7
  28. data/test/perf_parser.rb +40 -46
  29. data/test/perf_saj.rb +46 -53
  30. data/test/perf_scp.rb +57 -69
  31. data/test/perf_simple.rb +40 -38
  32. data/test/perf_strict.rb +68 -70
  33. data/test/perf_wab.rb +67 -69
  34. data/test/prec.rb +3 -3
  35. data/test/sample.rb +16 -15
  36. data/test/sample_json.rb +8 -7
  37. data/test/test_compat.rb +44 -46
  38. data/test/test_custom.rb +56 -42
  39. data/test/test_debian.rb +6 -9
  40. data/test/test_fast.rb +78 -72
  41. data/test/test_file.rb +16 -21
  42. data/test/test_gc.rb +5 -5
  43. data/test/test_generate.rb +5 -5
  44. data/test/test_hash.rb +4 -4
  45. data/test/test_integer_range.rb +9 -9
  46. data/test/test_null.rb +18 -20
  47. data/test/test_object.rb +76 -86
  48. data/test/test_parser.rb +4 -4
  49. data/test/test_parser_debug.rb +4 -4
  50. data/test/test_parser_saj.rb +31 -31
  51. data/test/test_parser_usual.rb +3 -3
  52. data/test/test_rails.rb +2 -2
  53. data/test/test_saj.rb +8 -8
  54. data/test/test_scp.rb +29 -29
  55. data/test/test_strict.rb +25 -31
  56. data/test/test_various.rb +121 -75
  57. data/test/test_wab.rb +43 -42
  58. data/test/test_writer.rb +46 -46
  59. data/test/tests.rb +7 -7
  60. data/test/tests_mimic.rb +6 -6
  61. data/test/tests_mimic_addition.rb +6 -6
  62. metadata +3 -6
  63. data/test/bar.rb +0 -11
  64. data/test/baz.rb +0 -16
  65. data/test/bug.rb +0 -16
  66. 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