oj 3.10.18 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/ext/oj/mimic_json.c +3 -9
 - data/ext/oj/oj.c +12 -4
 - data/ext/oj/oj.h +1 -0
 - data/ext/oj/parse.c +12 -3
 - data/ext/oj/sparse.c +33 -8
 - data/lib/oj/version.rb +1 -1
 - data/pages/Modes.md +2 -1
 - data/pages/Options.md +8 -0
 - data/test/test_compat.rb +1 -1
 - data/test/test_various.rb +1 -0
 - metadata +82 -82
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 2a9281dd44fc3a292de885df89aea20d98fc76c658a6bdc5291af8a1823c521c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 2aaeeee785c97a6d11f5188fe285e2dc0cd89df24408b08f9de537e3c5f602e2
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: '0787f0efdc46414a5b228aab320eb4c41242100da6f6e2598fcb6afaa08e9eeaaf0c524dce001899aac0e4015c252ef1d4dc399a6eea68bef32f18e9268f018a'
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3298dbc834012e9981bda042e827b572ef17a0a1a827a8f07e4bc921df5ec940cdaa5f41f7c8f41a9571fc4fcda86c1fd81c96b214754bad33a3e15d66786cee
         
     | 
    
        data/ext/oj/mimic_json.c
    CHANGED
    
    | 
         @@ -364,7 +364,6 @@ mimic_generate_core(int argc, VALUE *argv, Options copts) { 
     | 
|
| 
       364 
364 
     | 
    
         
             
                struct _out	out;
         
     | 
| 
       365 
365 
     | 
    
         
             
                VALUE	rstr;
         
     | 
| 
       366 
366 
     | 
    
         | 
| 
       367 
     | 
    
         
            -
                // TBD
         
     | 
| 
       368 
367 
     | 
    
         
             
                memset(buf, 0, sizeof(buf));
         
     | 
| 
       369 
368 
     | 
    
         | 
| 
       370 
369 
     | 
    
         
             
                out.buf = buf;
         
     | 
| 
         @@ -510,6 +509,7 @@ mimic_parse_core(int argc, VALUE *argv, VALUE self, bool bang) { 
     | 
|
| 
       510 
509 
     | 
    
         
             
                pi.options.create_ok = No;
         
     | 
| 
       511 
510 
     | 
    
         
             
                pi.options.allow_nan = (bang ? Yes : No);
         
     | 
| 
       512 
511 
     | 
    
         
             
                pi.options.nilnil = No;
         
     | 
| 
      
 512 
     | 
    
         
            +
                pi.options.bigdec_load = RubyDec;
         
     | 
| 
       513 
513 
     | 
    
         
             
                pi.options.mode = CompatMode;
         
     | 
| 
       514 
514 
     | 
    
         
             
                pi.max_depth = 100;
         
     | 
| 
       515 
515 
     | 
    
         | 
| 
         @@ -560,14 +560,7 @@ mimic_parse_core(int argc, VALUE *argv, VALUE self, bool bang) { 
     | 
|
| 
       560 
560 
     | 
    
         
             
            	    }
         
     | 
| 
       561 
561 
     | 
    
         
             
            	}
         
     | 
| 
       562 
562 
     | 
    
         
             
            	if (Qtrue == rb_funcall(ropts, oj_has_key_id, 1, oj_decimal_class_sym)) {
         
     | 
| 
       563 
     | 
    
         
            -
            	     
     | 
| 
       564 
     | 
    
         
            -
            	    if (rb_cFloat == v) {
         
     | 
| 
       565 
     | 
    
         
            -
            		pi.options.bigdec_load = FloatDec;
         
     | 
| 
       566 
     | 
    
         
            -
            	    } else if (oj_bigdecimal_class == v) {
         
     | 
| 
       567 
     | 
    
         
            -
            		pi.options.bigdec_load = BigDec;
         
     | 
| 
       568 
     | 
    
         
            -
            	    } else if (Qnil == v) {
         
     | 
| 
       569 
     | 
    
         
            -
            		pi.options.bigdec_load = AutoDec;
         
     | 
| 
       570 
     | 
    
         
            -
            	    }
         
     | 
| 
      
 563 
     | 
    
         
            +
            	    pi.options.compat_bigdec = (oj_bigdecimal_class == rb_hash_lookup(ropts, oj_decimal_class_sym));
         
     | 
| 
       571 
564 
     | 
    
         
             
            	}
         
     | 
| 
       572 
565 
     | 
    
         
             
            	v = rb_hash_lookup(ropts, oj_max_nesting_sym);
         
     | 
| 
       573 
566 
     | 
    
         
             
            	if (Qtrue == v) {
         
     | 
| 
         @@ -693,6 +686,7 @@ static struct _options	mimic_object_to_json_options = { 
     | 
|
| 
       693 
686 
     | 
    
         
             
                RubyTime,	// time_format
         
     | 
| 
       694 
687 
     | 
    
         
             
                No,		// bigdec_as_num
         
     | 
| 
       695 
688 
     | 
    
         
             
                RubyDec,	// bigdec_load
         
     | 
| 
      
 689 
     | 
    
         
            +
                false,	// compat_bigdec
         
     | 
| 
       696 
690 
     | 
    
         
             
                No,		// to_hash
         
     | 
| 
       697 
691 
     | 
    
         
             
                No,		// to_json
         
     | 
| 
       698 
692 
     | 
    
         
             
                No,		// as_json
         
     | 
    
        data/ext/oj/oj.c
    CHANGED
    
    | 
         @@ -107,6 +107,7 @@ static VALUE	bigdecimal_load_sym; 
     | 
|
| 
       107 
107 
     | 
    
         
             
            static VALUE	bigdecimal_sym;
         
     | 
| 
       108 
108 
     | 
    
         
             
            static VALUE	circular_sym;
         
     | 
| 
       109 
109 
     | 
    
         
             
            static VALUE	class_cache_sym;
         
     | 
| 
      
 110 
     | 
    
         
            +
            static VALUE	compat_bigdecimal_sym;
         
     | 
| 
       110 
111 
     | 
    
         
             
            static VALUE	compat_sym;
         
     | 
| 
       111 
112 
     | 
    
         
             
            static VALUE	create_id_sym;
         
     | 
| 
       112 
113 
     | 
    
         
             
            static VALUE	custom_sym;
         
     | 
| 
         @@ -168,6 +169,7 @@ struct _options	oj_default_options = { 
     | 
|
| 
       168 
169 
     | 
    
         
             
                UnixTime,	// time_format
         
     | 
| 
       169 
170 
     | 
    
         
             
                NotSet,	// bigdec_as_num
         
     | 
| 
       170 
171 
     | 
    
         
             
                AutoDec,	// bigdec_load
         
     | 
| 
      
 172 
     | 
    
         
            +
                false,	// compat_bigdec
         
     | 
| 
       171 
173 
     | 
    
         
             
                No,		// to_hash
         
     | 
| 
       172 
174 
     | 
    
         
             
                No,		// to_json
         
     | 
| 
       173 
175 
     | 
    
         
             
                No,		// as_json
         
     | 
| 
         @@ -230,6 +232,7 @@ struct _options	oj_default_options = { 
     | 
|
| 
       230 
232 
     | 
    
         
             
             * - *:time_format* [_:unix_|_:unix_zone_|_:xmlschema_|_:ruby_] time format when dumping
         
     | 
| 
       231 
233 
     | 
    
         
             
             * - *:bigdecimal_as_decimal* [_Boolean_|_nil_] dump BigDecimal as a decimal number or as a String
         
     | 
| 
       232 
234 
     | 
    
         
             
             * - *:bigdecimal_load* [_:bigdecimal_|_:float_|_:auto_|_:fast_] load decimals as BigDecimal instead of as a Float. :auto pick the most precise for the number of digits. :float should be the same as ruby. :fast may require rounding but is must faster.
         
     | 
| 
      
 235 
     | 
    
         
            +
             * - *:compat_bigdecimal* [_true_|_false_] load decimals as BigDecimal instead of as a Float when in compat or rails mode.
         
     | 
| 
       233 
236 
     | 
    
         
             
             * - *:create_id* [_String_|_nil_] create id for json compatible object encoding, default is 'json_class'
         
     | 
| 
       234 
237 
     | 
    
         
             
             * - *:create_additions* [_Boolean_|_nil_] if true allow creation of instances using create_id on load.
         
     | 
| 
       235 
238 
     | 
    
         
             
             * - *:second_precision* [_Fixnum_|_nil_] number of digits after the decimal when dumping the seconds portion of time
         
     | 
| 
         @@ -334,6 +337,7 @@ get_def_opts(VALUE self) { 
     | 
|
| 
       334 
337 
     | 
    
         
             
                case AutoDec:
         
     | 
| 
       335 
338 
     | 
    
         
             
                default:		rb_hash_aset(opts, bigdecimal_load_sym, auto_sym);	break;
         
     | 
| 
       336 
339 
     | 
    
         
             
                }
         
     | 
| 
      
 340 
     | 
    
         
            +
                rb_hash_aset(opts, compat_bigdecimal_sym, oj_default_options.compat_bigdec ? Qtrue : Qfalse);
         
     | 
| 
       337 
341 
     | 
    
         
             
                rb_hash_aset(opts, create_id_sym, (NULL == oj_default_options.create_id) ? Qnil : rb_str_new2(oj_default_options.create_id));
         
     | 
| 
       338 
342 
     | 
    
         
             
                rb_hash_aset(opts, oj_space_sym, (0 == oj_default_options.dump_opts.after_size) ? Qnil : rb_str_new2(oj_default_options.dump_opts.after_sep));
         
     | 
| 
       339 
343 
     | 
    
         
             
                rb_hash_aset(opts, oj_space_before_sym, (0 == oj_default_options.dump_opts.before_size) ? Qnil : rb_str_new2(oj_default_options.dump_opts.before_sep));
         
     | 
| 
         @@ -379,6 +383,7 @@ get_def_opts(VALUE self) { 
     | 
|
| 
       379 
383 
     | 
    
         
             
             *   - *:escape* [_:newline_|_:json_|_:xss_safe_|_:ascii_|_unicode_xss_|_nil_] mode encodes all high-bit characters as escaped sequences if :ascii, :json is standand UTF-8 JSON encoding, :newline is the same as :json but newlines are not escaped, :unicode_xss allows unicode but escapes &, <, and >, and any \u20xx characters along with some others, and :xss_safe escapes &, <, and >, and some others.
         
     | 
| 
       380 
384 
     | 
    
         
             
             *   - *:bigdecimal_as_decimal* [_Boolean_|_nil_] dump BigDecimal as a decimal number or as a String.
         
     | 
| 
       381 
385 
     | 
    
         
             
             *   - *:bigdecimal_load* [_:bigdecimal_|_:float_|_:auto_|_nil_] load decimals as BigDecimal instead of as a Float. :auto pick the most precise for the number of digits.
         
     | 
| 
      
 386 
     | 
    
         
            +
             *   - *:compat_bigdecimal* [_true_|_false_] load decimals as BigDecimal instead of as a Float in compat mode.
         
     | 
| 
       382 
387 
     | 
    
         
             
             *   - *:mode* [_:object_|_:strict_|_:compat_|_:null_|_:custom_|_:rails_|_:wab_] load and dump mode to use for JSON :strict raises an exception when a non-supported Object is encountered. :compat attempts to extract variable values from an Object using to_json() or to_hash() then it walks the Object's variables if neither is found. The :object mode ignores to_hash() and to_json() methods and encodes variables using code internal to the Oj gem. The :null mode ignores non-supported Objects and replaces them with a null. The :custom mode honors all dump options. The :rails more mimics rails and Active behavior.
         
     | 
| 
       383 
388 
     | 
    
         
             
             *   - *:time_format* [_:unix_|_:xmlschema_|_:ruby_] time format when dumping in :compat mode :unix decimal number denoting the number of seconds since 1/1/1970, :unix_zone decimal number denoting the number of seconds since 1/1/1970 plus the utc_offset in the exponent, :xmlschema date-time format taken from XML Schema as a String, :ruby Time.to_s formatted String.
         
     | 
| 
       384 
389 
     | 
    
         
             
             *   - *:create_id* [_String_|_nil_] create id for json compatible object encoding
         
     | 
| 
         @@ -582,19 +587,21 @@ oj_parse_options(VALUE ropts, Options copts) { 
     | 
|
| 
       582 
587 
     | 
    
         
             
            	    rb_raise(rb_eArgError, ":bigdecimal_load must be :bigdecimal, :float, or :auto.");
         
     | 
| 
       583 
588 
     | 
    
         
             
            	}
         
     | 
| 
       584 
589 
     | 
    
         
             
                }
         
     | 
| 
      
 590 
     | 
    
         
            +
                if (Qnil != (v = rb_hash_lookup(ropts, compat_bigdecimal_sym))) {
         
     | 
| 
      
 591 
     | 
    
         
            +
            	copts->compat_bigdec = (Qtrue == v);
         
     | 
| 
      
 592 
     | 
    
         
            +
                }
         
     | 
| 
       585 
593 
     | 
    
         
             
                if (Qtrue == rb_funcall(ropts, oj_has_key_id, 1, oj_decimal_class_sym)) {
         
     | 
| 
       586 
594 
     | 
    
         
             
            	v = rb_hash_lookup(ropts, oj_decimal_class_sym);
         
     | 
| 
       587 
595 
     | 
    
         
             
            	if (rb_cFloat == v) {
         
     | 
| 
       588 
     | 
    
         
            -
            	    copts-> 
     | 
| 
      
 596 
     | 
    
         
            +
            	    copts->compat_bigdec = FloatDec;
         
     | 
| 
       589 
597 
     | 
    
         
             
            	} else if (oj_bigdecimal_class == v) {
         
     | 
| 
       590 
     | 
    
         
            -
             	    copts-> 
     | 
| 
      
 598 
     | 
    
         
            +
             	    copts->compat_bigdec = BigDec;
         
     | 
| 
       591 
599 
     | 
    
         
             
            	} else if (Qnil == v) {
         
     | 
| 
       592 
     | 
    
         
            -
            	    copts-> 
     | 
| 
      
 600 
     | 
    
         
            +
            	    copts->compat_bigdec = AutoDec;
         
     | 
| 
       593 
601 
     | 
    
         
             
            	} else {
         
     | 
| 
       594 
602 
     | 
    
         
             
            	    rb_raise(rb_eArgError, ":decimal_class must be BigDecimal, Float, or nil.");
         
     | 
| 
       595 
603 
     | 
    
         
             
            	}
         
     | 
| 
       596 
604 
     | 
    
         
             
               }
         
     | 
| 
       597 
     | 
    
         
            -
             
     | 
| 
       598 
605 
     | 
    
         
             
                if (Qtrue == rb_funcall(ropts, oj_has_key_id, 1, create_id_sym)) {
         
     | 
| 
       599 
606 
     | 
    
         
             
            	v = rb_hash_lookup(ropts, create_id_sym);
         
     | 
| 
       600 
607 
     | 
    
         
             
            	if (Qnil == v) {
         
     | 
| 
         @@ -1663,6 +1670,7 @@ Init_oj() { 
     | 
|
| 
       1663 
1670 
     | 
    
         
             
                bigdecimal_sym = ID2SYM(rb_intern("bigdecimal"));		rb_gc_register_address(&bigdecimal_sym);
         
     | 
| 
       1664 
1671 
     | 
    
         
             
                circular_sym = ID2SYM(rb_intern("circular"));		rb_gc_register_address(&circular_sym);
         
     | 
| 
       1665 
1672 
     | 
    
         
             
                class_cache_sym = ID2SYM(rb_intern("class_cache"));		rb_gc_register_address(&class_cache_sym);
         
     | 
| 
      
 1673 
     | 
    
         
            +
                compat_bigdecimal_sym = ID2SYM(rb_intern("compat_bigdecimal"));rb_gc_register_address(&compat_bigdecimal_sym);
         
     | 
| 
       1666 
1674 
     | 
    
         
             
                compat_sym = ID2SYM(rb_intern("compat"));			rb_gc_register_address(&compat_sym);
         
     | 
| 
       1667 
1675 
     | 
    
         
             
                create_id_sym = ID2SYM(rb_intern("create_id"));		rb_gc_register_address(&create_id_sym);
         
     | 
| 
       1668 
1676 
     | 
    
         
             
                custom_sym = ID2SYM(rb_intern("custom"));			rb_gc_register_address(&custom_sym);
         
     | 
    
        data/ext/oj/oj.h
    CHANGED
    
    
    
        data/ext/oj/parse.c
    CHANGED
    
    | 
         @@ -385,8 +385,13 @@ read_num(ParseInfo pi) { 
     | 
|
| 
       385 
385 
     | 
    
         
             
                ni.nan = 0;
         
     | 
| 
       386 
386 
     | 
    
         
             
                ni.neg = 0;
         
     | 
| 
       387 
387 
     | 
    
         
             
                ni.has_exp = 0;
         
     | 
| 
       388 
     | 
    
         
            -
                 
     | 
| 
       389 
     | 
    
         
            -
             
     | 
| 
      
 388 
     | 
    
         
            +
                if (CompatMode == pi->options.mode) {
         
     | 
| 
      
 389 
     | 
    
         
            +
            	ni.no_big = !pi->options.compat_bigdec;
         
     | 
| 
      
 390 
     | 
    
         
            +
            	ni.bigdec_load = pi->options.compat_bigdec;
         
     | 
| 
      
 391 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 392 
     | 
    
         
            +
            	ni.no_big = (FloatDec == pi->options.bigdec_load || FastDec == pi->options.bigdec_load || RubyDec == pi->options.bigdec_load);
         
     | 
| 
      
 393 
     | 
    
         
            +
            	ni.bigdec_load = pi->options.bigdec_load;
         
     | 
| 
      
 394 
     | 
    
         
            +
                }
         
     | 
| 
       390 
395 
     | 
    
         | 
| 
       391 
396 
     | 
    
         
             
                if ('-' == *pi->cur) {
         
     | 
| 
       392 
397 
     | 
    
         
             
            	pi->cur++;
         
     | 
| 
         @@ -511,7 +516,11 @@ read_num(ParseInfo pi) { 
     | 
|
| 
       511 
516 
     | 
    
         
             
            	    ni.nan = 1;
         
     | 
| 
       512 
517 
     | 
    
         
             
            	}
         
     | 
| 
       513 
518 
     | 
    
         
             
                }
         
     | 
| 
       514 
     | 
    
         
            -
                if ( 
     | 
| 
      
 519 
     | 
    
         
            +
                if (CompatMode == pi->options.mode) {
         
     | 
| 
      
 520 
     | 
    
         
            +
            	if (pi->options.compat_bigdec) {
         
     | 
| 
      
 521 
     | 
    
         
            +
            	    ni.big = 1;
         
     | 
| 
      
 522 
     | 
    
         
            +
            	}
         
     | 
| 
      
 523 
     | 
    
         
            +
                } else if (BigDec == pi->options.bigdec_load) {
         
     | 
| 
       515 
524 
     | 
    
         
             
            	ni.big = 1;
         
     | 
| 
       516 
525 
     | 
    
         
             
                }
         
     | 
| 
       517 
526 
     | 
    
         
             
                if (0 == parent) {
         
     | 
    
        data/ext/oj/sparse.c
    CHANGED
    
    | 
         @@ -400,8 +400,13 @@ read_num(ParseInfo pi) { 
     | 
|
| 
       400 
400 
     | 
    
         
             
                ni.nan = 0;
         
     | 
| 
       401 
401 
     | 
    
         
             
                ni.neg = 0;
         
     | 
| 
       402 
402 
     | 
    
         
             
                ni.has_exp = 0;
         
     | 
| 
       403 
     | 
    
         
            -
                 
     | 
| 
       404 
     | 
    
         
            -
             
     | 
| 
      
 403 
     | 
    
         
            +
                if (CompatMode == pi->options.mode) {
         
     | 
| 
      
 404 
     | 
    
         
            +
            	ni.no_big = !pi->options.compat_bigdec;
         
     | 
| 
      
 405 
     | 
    
         
            +
            	ni.bigdec_load = pi->options.compat_bigdec;
         
     | 
| 
      
 406 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 407 
     | 
    
         
            +
            	ni.no_big = (FloatDec == pi->options.bigdec_load || FastDec == pi->options.bigdec_load || RubyDec == pi->options.bigdec_load);
         
     | 
| 
      
 408 
     | 
    
         
            +
            	ni.bigdec_load = pi->options.bigdec_load;
         
     | 
| 
      
 409 
     | 
    
         
            +
                }
         
     | 
| 
       405 
410 
     | 
    
         | 
| 
       406 
411 
     | 
    
         
             
                c = reader_get(&pi->rd);
         
     | 
| 
       407 
412 
     | 
    
         
             
                if ('-' == c) {
         
     | 
| 
         @@ -518,7 +523,11 @@ read_num(ParseInfo pi) { 
     | 
|
| 
       518 
523 
     | 
    
         
             
            	    ni.nan = 1;
         
     | 
| 
       519 
524 
     | 
    
         
             
            	}
         
     | 
| 
       520 
525 
     | 
    
         
             
                }
         
     | 
| 
       521 
     | 
    
         
            -
                if ( 
     | 
| 
      
 526 
     | 
    
         
            +
                if (CompatMode == pi->options.mode) {
         
     | 
| 
      
 527 
     | 
    
         
            +
            	if (pi->options.compat_bigdec) {
         
     | 
| 
      
 528 
     | 
    
         
            +
            	    ni.big = 1;
         
     | 
| 
      
 529 
     | 
    
         
            +
            	}
         
     | 
| 
      
 530 
     | 
    
         
            +
                } else if (BigDec == pi->options.bigdec_load) {
         
     | 
| 
       522 
531 
     | 
    
         
             
            	ni.big = 1;
         
     | 
| 
       523 
532 
     | 
    
         
             
                }
         
     | 
| 
       524 
533 
     | 
    
         
             
                add_num_value(pi, &ni);
         
     | 
| 
         @@ -541,15 +550,24 @@ read_nan(ParseInfo pi) { 
     | 
|
| 
       541 
550 
     | 
    
         
             
                ni.infinity = 0;
         
     | 
| 
       542 
551 
     | 
    
         
             
                ni.nan = 1;
         
     | 
| 
       543 
552 
     | 
    
         
             
                ni.neg = 0;
         
     | 
| 
       544 
     | 
    
         
            -
                 
     | 
| 
       545 
     | 
    
         
            -
             
     | 
| 
      
 553 
     | 
    
         
            +
                if (CompatMode == pi->options.mode) {
         
     | 
| 
      
 554 
     | 
    
         
            +
            	ni.no_big = !pi->options.compat_bigdec;
         
     | 
| 
      
 555 
     | 
    
         
            +
            	ni.bigdec_load = pi->options.compat_bigdec;
         
     | 
| 
      
 556 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 557 
     | 
    
         
            +
            	ni.no_big = (FloatDec == pi->options.bigdec_load || FastDec == pi->options.bigdec_load || RubyDec == pi->options.bigdec_load);
         
     | 
| 
      
 558 
     | 
    
         
            +
            	ni.bigdec_load = pi->options.bigdec_load;
         
     | 
| 
      
 559 
     | 
    
         
            +
                }
         
     | 
| 
       546 
560 
     | 
    
         | 
| 
       547 
561 
     | 
    
         
             
                if ('a' != reader_get(&pi->rd) ||
         
     | 
| 
       548 
562 
     | 
    
         
             
            	('N' != (c = reader_get(&pi->rd)) && 'n' != c)) {
         
     | 
| 
       549 
563 
     | 
    
         
             
            	oj_set_error_at(pi, oj_parse_error_class, __FILE__, __LINE__, "not a number or other value");
         
     | 
| 
       550 
564 
     | 
    
         
             
            	return;
         
     | 
| 
       551 
565 
     | 
    
         
             
                }
         
     | 
| 
       552 
     | 
    
         
            -
                if ( 
     | 
| 
      
 566 
     | 
    
         
            +
                if (CompatMode == pi->options.mode) {
         
     | 
| 
      
 567 
     | 
    
         
            +
            	if (pi->options.compat_bigdec) {
         
     | 
| 
      
 568 
     | 
    
         
            +
            	    ni.big = 1;
         
     | 
| 
      
 569 
     | 
    
         
            +
            	}
         
     | 
| 
      
 570 
     | 
    
         
            +
                } else if (BigDec == pi->options.bigdec_load) {
         
     | 
| 
       553 
571 
     | 
    
         
             
            	ni.big = 1;
         
     | 
| 
       554 
572 
     | 
    
         
             
                }
         
     | 
| 
       555 
573 
     | 
    
         
             
                add_num_value(pi, &ni);
         
     | 
| 
         @@ -739,8 +757,15 @@ oj_sparse2(ParseInfo pi) { 
     | 
|
| 
       739 
757 
     | 
    
         
             
            		ni.infinity = 0;
         
     | 
| 
       740 
758 
     | 
    
         
             
            		ni.nan = 1;
         
     | 
| 
       741 
759 
     | 
    
         
             
            		ni.neg = 0;
         
     | 
| 
       742 
     | 
    
         
            -
            		 
     | 
| 
       743 
     | 
    
         
            -
             
     | 
| 
      
 760 
     | 
    
         
            +
            		if (CompatMode == pi->options.mode) {
         
     | 
| 
      
 761 
     | 
    
         
            +
            		    ni.no_big = !pi->options.compat_bigdec;
         
     | 
| 
      
 762 
     | 
    
         
            +
            		    ni.bigdec_load = pi->options.compat_bigdec;
         
     | 
| 
      
 763 
     | 
    
         
            +
            		} else {
         
     | 
| 
      
 764 
     | 
    
         
            +
            		    ni.no_big = (FloatDec == pi->options.bigdec_load ||
         
     | 
| 
      
 765 
     | 
    
         
            +
            				 FastDec == pi->options.bigdec_load ||
         
     | 
| 
      
 766 
     | 
    
         
            +
            				 RubyDec == pi->options.bigdec_load);
         
     | 
| 
      
 767 
     | 
    
         
            +
            		    ni.bigdec_load = pi->options.bigdec_load;
         
     | 
| 
      
 768 
     | 
    
         
            +
            		}
         
     | 
| 
       744 
769 
     | 
    
         
             
            		add_num_value(pi, &ni);
         
     | 
| 
       745 
770 
     | 
    
         
             
            	    } else {
         
     | 
| 
       746 
771 
     | 
    
         
             
            		oj_set_error_at(pi, oj_parse_error_class, __FILE__, __LINE__, "invalid token");
         
     | 
    
        data/lib/oj/version.rb
    CHANGED
    
    
    
        data/pages/Modes.md
    CHANGED
    
    | 
         @@ -95,7 +95,8 @@ information. 
     | 
|
| 
       95 
95 
     | 
    
         
             
            | :ascii_only            | Boolean |       x |       x |       2 |       2 |       x |       x |         |
         
     | 
| 
       96 
96 
     | 
    
         
             
            | :auto_define           | Boolean |         |         |         |         |       x |       x |         |
         
     | 
| 
       97 
97 
     | 
    
         
             
            | :bigdecimal_as_decimal | Boolean |         |         |         |       3 |       x |       x |         |
         
     | 
| 
       98 
     | 
    
         
            -
            | :bigdecimal_load       | Boolean |         |         | 
     | 
| 
      
 98 
     | 
    
         
            +
            | :bigdecimal_load       | Boolean |         |         |         |         |         |       x |         |
         
     | 
| 
      
 99 
     | 
    
         
            +
            | :compat_bigdecimal     | Boolean |         |         |       x |         |         |       x |         |
         
     | 
| 
       99 
100 
     | 
    
         
             
            | :circular              | Boolean |       x |       x |       x |       x |       x |       x |         |
         
     | 
| 
       100 
101 
     | 
    
         
             
            | :class_cache           | Boolean |         |         |         |         |       x |       x |         |
         
     | 
| 
       101 
102 
     | 
    
         
             
            | :create_additions      | Boolean |         |         |       x |       x |         |       x |         |
         
     | 
    
        data/pages/Options.md
    CHANGED
    
    | 
         @@ -70,6 +70,14 @@ This can also be set with `:decimal_class` when used as a load or 
     | 
|
| 
       70 
70 
     | 
    
         
             
            parse option to match the JSON gem. In that case either `Float`,
         
     | 
| 
       71 
71 
     | 
    
         
             
            `BigDecimal`, or `nil` can be provided.
         
     | 
| 
       72 
72 
     | 
    
         | 
| 
      
 73 
     | 
    
         
            +
            ### :compat_bigdecimal [Boolean]
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            Determines how to load decimals when in `:compat` mode.
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
             - `true` convert all decimal numbers to BigDecimal.
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
             - `false` convert all decimal numbers to Float.
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
       73 
81 
     | 
    
         
             
            ### :circular [Boolean]
         
     | 
| 
       74 
82 
     | 
    
         | 
| 
       75 
83 
     | 
    
         
             
            Detect circular references while dumping. In :compat mode raise a
         
     | 
    
        data/test/test_compat.rb
    CHANGED
    
    | 
         @@ -283,7 +283,7 @@ class CompatJuice < Minitest::Test 
     | 
|
| 
       283 
283 
     | 
    
         
             
                assert_equal('"0.314159265358979323846e1"', json.downcase)
         
     | 
| 
       284 
284 
     | 
    
         
             
              end
         
     | 
| 
       285 
285 
     | 
    
         | 
| 
       286 
     | 
    
         
            -
              def  
     | 
| 
      
 286 
     | 
    
         
            +
              def test_decimal_class
         
     | 
| 
       287 
287 
     | 
    
         
             
                big = BigDecimal('3.14159265358979323846')
         
     | 
| 
       288 
288 
     | 
    
         
             
                # :decimal_class is the undocumented feature.
         
     | 
| 
       289 
289 
     | 
    
         
             
                json = Oj.load('3.14159265358979323846', mode: :compat, decimal_class: BigDecimal)
         
     | 
    
        data/test/test_various.rb
    CHANGED
    
    
    
        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. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.11.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Peter Ohler
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-01-12 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rake-compiler
         
     | 
| 
         @@ -79,16 +79,16 @@ extensions: 
     | 
|
| 
       79 
79 
     | 
    
         
             
            - ext/oj/extconf.rb
         
     | 
| 
       80 
80 
     | 
    
         
             
            extra_rdoc_files:
         
     | 
| 
       81 
81 
     | 
    
         
             
            - README.md
         
     | 
| 
       82 
     | 
    
         
            -
            - pages/Rails.md
         
     | 
| 
       83 
     | 
    
         
            -
            - pages/JsonGem.md
         
     | 
| 
       84 
     | 
    
         
            -
            - pages/Encoding.md
         
     | 
| 
       85 
     | 
    
         
            -
            - pages/WAB.md
         
     | 
| 
       86 
     | 
    
         
            -
            - pages/Custom.md
         
     | 
| 
       87 
82 
     | 
    
         
             
            - pages/Advanced.md
         
     | 
| 
       88 
     | 
    
         
            -
            - pages/Options.md
         
     | 
| 
       89 
83 
     | 
    
         
             
            - pages/Compatibility.md
         
     | 
| 
      
 84 
     | 
    
         
            +
            - pages/Custom.md
         
     | 
| 
      
 85 
     | 
    
         
            +
            - pages/Encoding.md
         
     | 
| 
      
 86 
     | 
    
         
            +
            - pages/JsonGem.md
         
     | 
| 
       90 
87 
     | 
    
         
             
            - pages/Modes.md
         
     | 
| 
      
 88 
     | 
    
         
            +
            - pages/Options.md
         
     | 
| 
      
 89 
     | 
    
         
            +
            - pages/Rails.md
         
     | 
| 
       91 
90 
     | 
    
         
             
            - pages/Security.md
         
     | 
| 
      
 91 
     | 
    
         
            +
            - pages/WAB.md
         
     | 
| 
       92 
92 
     | 
    
         
             
            files:
         
     | 
| 
       93 
93 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       94 
94 
     | 
    
         
             
            - README.md
         
     | 
| 
         @@ -284,98 +284,98 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       284 
284 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       285 
285 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       286 
286 
     | 
    
         
             
            requirements: []
         
     | 
| 
       287 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 287 
     | 
    
         
            +
            rubygems_version: 3.2.3
         
     | 
| 
       288 
288 
     | 
    
         
             
            signing_key:
         
     | 
| 
       289 
289 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       290 
290 
     | 
    
         
             
            summary: A fast JSON parser and serializer.
         
     | 
| 
       291 
291 
     | 
    
         
             
            test_files:
         
     | 
| 
      
 292 
     | 
    
         
            +
            - test/_test_active.rb
         
     | 
| 
      
 293 
     | 
    
         
            +
            - test/_test_active_mimic.rb
         
     | 
| 
      
 294 
     | 
    
         
            +
            - test/_test_mimic_rails.rb
         
     | 
| 
      
 295 
     | 
    
         
            +
            - test/activerecord/result_test.rb
         
     | 
| 
      
 296 
     | 
    
         
            +
            - test/activesupport4/decoding_test.rb
         
     | 
| 
      
 297 
     | 
    
         
            +
            - test/activesupport4/encoding_test.rb
         
     | 
| 
      
 298 
     | 
    
         
            +
            - test/activesupport4/test_helper.rb
         
     | 
| 
      
 299 
     | 
    
         
            +
            - test/activesupport5/abstract_unit.rb
         
     | 
| 
      
 300 
     | 
    
         
            +
            - test/activesupport5/decoding_test.rb
         
     | 
| 
      
 301 
     | 
    
         
            +
            - test/activesupport5/encoding_test.rb
         
     | 
| 
      
 302 
     | 
    
         
            +
            - test/activesupport5/encoding_test_cases.rb
         
     | 
| 
      
 303 
     | 
    
         
            +
            - test/activesupport5/test_helper.rb
         
     | 
| 
      
 304 
     | 
    
         
            +
            - test/activesupport5/time_zone_test_helpers.rb
         
     | 
| 
      
 305 
     | 
    
         
            +
            - test/activesupport6/abstract_unit.rb
         
     | 
| 
      
 306 
     | 
    
         
            +
            - test/activesupport6/decoding_test.rb
         
     | 
| 
      
 307 
     | 
    
         
            +
            - test/activesupport6/encoding_test.rb
         
     | 
| 
      
 308 
     | 
    
         
            +
            - test/activesupport6/encoding_test_cases.rb
         
     | 
| 
      
 309 
     | 
    
         
            +
            - test/activesupport6/test_common.rb
         
     | 
| 
      
 310 
     | 
    
         
            +
            - test/activesupport6/test_helper.rb
         
     | 
| 
      
 311 
     | 
    
         
            +
            - test/activesupport6/time_zone_test_helpers.rb
         
     | 
| 
      
 312 
     | 
    
         
            +
            - test/bar.rb
         
     | 
| 
      
 313 
     | 
    
         
            +
            - test/baz.rb
         
     | 
| 
      
 314 
     | 
    
         
            +
            - test/files.rb
         
     | 
| 
       292 
315 
     | 
    
         
             
            - test/foo.rb
         
     | 
| 
       293 
     | 
    
         
            -
            - test/prec.rb
         
     | 
| 
       294 
     | 
    
         
            -
            - test/test_integer_range.rb
         
     | 
| 
       295 
     | 
    
         
            -
            - test/test_strict.rb
         
     | 
| 
       296 
     | 
    
         
            -
            - test/perf_strict.rb
         
     | 
| 
       297 
     | 
    
         
            -
            - test/tests.rb
         
     | 
| 
       298 
     | 
    
         
            -
            - test/perf_saj.rb
         
     | 
| 
       299 
     | 
    
         
            -
            - test/test_compat.rb
         
     | 
| 
       300 
316 
     | 
    
         
             
            - test/helper.rb
         
     | 
| 
       301 
     | 
    
         
            -
            - test/ 
     | 
| 
       302 
     | 
    
         
            -
            - test/ 
     | 
| 
       303 
     | 
    
         
            -
            - test/ 
     | 
| 
       304 
     | 
    
         
            -
            - test/ 
     | 
| 
      
 317 
     | 
    
         
            +
            - test/isolated/shared.rb
         
     | 
| 
      
 318 
     | 
    
         
            +
            - test/isolated/test_mimic_after.rb
         
     | 
| 
      
 319 
     | 
    
         
            +
            - test/isolated/test_mimic_alone.rb
         
     | 
| 
      
 320 
     | 
    
         
            +
            - test/isolated/test_mimic_as_json.rb
         
     | 
| 
      
 321 
     | 
    
         
            +
            - test/isolated/test_mimic_before.rb
         
     | 
| 
      
 322 
     | 
    
         
            +
            - test/isolated/test_mimic_define.rb
         
     | 
| 
      
 323 
     | 
    
         
            +
            - test/isolated/test_mimic_rails_after.rb
         
     | 
| 
      
 324 
     | 
    
         
            +
            - test/isolated/test_mimic_rails_before.rb
         
     | 
| 
      
 325 
     | 
    
         
            +
            - test/isolated/test_mimic_redefine.rb
         
     | 
| 
       305 
326 
     | 
    
         
             
            - test/json_gem/json_addition_test.rb
         
     | 
| 
       306 
     | 
    
         
            -
            - test/json_gem/ 
     | 
| 
      
 327 
     | 
    
         
            +
            - test/json_gem/json_common_interface_test.rb
         
     | 
| 
      
 328 
     | 
    
         
            +
            - test/json_gem/json_encoding_test.rb
         
     | 
| 
       307 
329 
     | 
    
         
             
            - test/json_gem/json_ext_parser_test.rb
         
     | 
| 
       308 
     | 
    
         
            -
            - test/json_gem/ 
     | 
| 
       309 
     | 
    
         
            -
            - test/json_gem/json_generic_object_test.rb
         
     | 
| 
      
 330 
     | 
    
         
            +
            - test/json_gem/json_fixtures_test.rb
         
     | 
| 
       310 
331 
     | 
    
         
             
            - test/json_gem/json_generator_test.rb
         
     | 
| 
       311 
     | 
    
         
            -
            - test/json_gem/ 
     | 
| 
       312 
     | 
    
         
            -
            - test/json_gem/json_encoding_test.rb
         
     | 
| 
      
 332 
     | 
    
         
            +
            - test/json_gem/json_generic_object_test.rb
         
     | 
| 
       313 
333 
     | 
    
         
             
            - test/json_gem/json_parser_test.rb
         
     | 
| 
       314 
     | 
    
         
            -
            - test/ 
     | 
| 
       315 
     | 
    
         
            -
            - test/ 
     | 
| 
       316 
     | 
    
         
            -
            - test/ 
     | 
| 
       317 
     | 
    
         
            -
            - test/ 
     | 
| 
      
 334 
     | 
    
         
            +
            - test/json_gem/json_string_matching_test.rb
         
     | 
| 
      
 335 
     | 
    
         
            +
            - test/json_gem/test_helper.rb
         
     | 
| 
      
 336 
     | 
    
         
            +
            - test/perf.rb
         
     | 
| 
      
 337 
     | 
    
         
            +
            - test/perf_compat.rb
         
     | 
| 
      
 338 
     | 
    
         
            +
            - test/perf_fast.rb
         
     | 
| 
      
 339 
     | 
    
         
            +
            - test/perf_file.rb
         
     | 
| 
       318 
340 
     | 
    
         
             
            - test/perf_object.rb
         
     | 
| 
       319 
     | 
    
         
            -
            - test/ 
     | 
| 
       320 
     | 
    
         
            -
            - test/test_custom.rb
         
     | 
| 
       321 
     | 
    
         
            -
            - test/bar.rb
         
     | 
| 
       322 
     | 
    
         
            -
            - test/activesupport4/encoding_test.rb
         
     | 
| 
       323 
     | 
    
         
            -
            - test/activesupport4/test_helper.rb
         
     | 
| 
       324 
     | 
    
         
            -
            - test/activesupport4/decoding_test.rb
         
     | 
| 
       325 
     | 
    
         
            -
            - test/sample_json.rb
         
     | 
| 
       326 
     | 
    
         
            -
            - test/activesupport5/encoding_test_cases.rb
         
     | 
| 
       327 
     | 
    
         
            -
            - test/activesupport5/encoding_test.rb
         
     | 
| 
       328 
     | 
    
         
            -
            - test/activesupport5/abstract_unit.rb
         
     | 
| 
       329 
     | 
    
         
            -
            - test/activesupport5/time_zone_test_helpers.rb
         
     | 
| 
       330 
     | 
    
         
            -
            - test/activesupport5/test_helper.rb
         
     | 
| 
       331 
     | 
    
         
            -
            - test/activesupport5/decoding_test.rb
         
     | 
| 
       332 
     | 
    
         
            -
            - test/test_saj.rb
         
     | 
| 
      
 341 
     | 
    
         
            +
            - test/perf_saj.rb
         
     | 
| 
       333 
342 
     | 
    
         
             
            - test/perf_scp.rb
         
     | 
| 
       334 
     | 
    
         
            -
            - test/ 
     | 
| 
       335 
     | 
    
         
            -
            - test/ 
     | 
| 
       336 
     | 
    
         
            -
            - test/ 
     | 
| 
       337 
     | 
    
         
            -
            - test/ 
     | 
| 
       338 
     | 
    
         
            -
            - test/test_fast.rb
         
     | 
| 
       339 
     | 
    
         
            -
            - test/perf_fast.rb
         
     | 
| 
      
 343 
     | 
    
         
            +
            - test/perf_simple.rb
         
     | 
| 
      
 344 
     | 
    
         
            +
            - test/perf_strict.rb
         
     | 
| 
      
 345 
     | 
    
         
            +
            - test/perf_wab.rb
         
     | 
| 
      
 346 
     | 
    
         
            +
            - test/prec.rb
         
     | 
| 
       340 
347 
     | 
    
         
             
            - test/sample/change.rb
         
     | 
| 
       341 
     | 
    
         
            -
            - test/sample/ 
     | 
| 
      
 348 
     | 
    
         
            +
            - test/sample/dir.rb
         
     | 
| 
       342 
349 
     | 
    
         
             
            - test/sample/doc.rb
         
     | 
| 
       343 
     | 
    
         
            -
            - test/sample/shape.rb
         
     | 
| 
       344 
     | 
    
         
            -
            - test/sample/layer.rb
         
     | 
| 
       345 
     | 
    
         
            -
            - test/sample/group.rb
         
     | 
| 
       346 
350 
     | 
    
         
             
            - test/sample/file.rb
         
     | 
| 
       347 
     | 
    
         
            -
            - test/sample/ 
     | 
| 
      
 351 
     | 
    
         
            +
            - test/sample/group.rb
         
     | 
| 
       348 
352 
     | 
    
         
             
            - test/sample/hasprops.rb
         
     | 
| 
      
 353 
     | 
    
         
            +
            - test/sample/layer.rb
         
     | 
| 
       349 
354 
     | 
    
         
             
            - test/sample/line.rb
         
     | 
| 
       350 
     | 
    
         
            -
            - test/sample/dir.rb
         
     | 
| 
       351 
355 
     | 
    
         
             
            - test/sample/oval.rb
         
     | 
| 
       352 
     | 
    
         
            -
            - test/ 
     | 
| 
       353 
     | 
    
         
            -
            - test/ 
     | 
| 
       354 
     | 
    
         
            -
            - test/ 
     | 
| 
       355 
     | 
    
         
            -
            - test/ 
     | 
| 
       356 
     | 
    
         
            -
            - test/ 
     | 
| 
       357 
     | 
    
         
            -
            - test/ 
     | 
| 
       358 
     | 
    
         
            -
            - test/ 
     | 
| 
       359 
     | 
    
         
            -
            - test/test_writer.rb
         
     | 
| 
       360 
     | 
    
         
            -
            - test/test_rails.rb
         
     | 
| 
       361 
     | 
    
         
            -
            - test/perf.rb
         
     | 
| 
       362 
     | 
    
         
            -
            - test/isolated/test_mimic_define.rb
         
     | 
| 
       363 
     | 
    
         
            -
            - test/isolated/test_mimic_after.rb
         
     | 
| 
       364 
     | 
    
         
            -
            - test/isolated/test_mimic_rails_after.rb
         
     | 
| 
       365 
     | 
    
         
            -
            - test/isolated/test_mimic_before.rb
         
     | 
| 
       366 
     | 
    
         
            -
            - test/isolated/test_mimic_rails_before.rb
         
     | 
| 
       367 
     | 
    
         
            -
            - test/isolated/test_mimic_redefine.rb
         
     | 
| 
       368 
     | 
    
         
            -
            - test/isolated/shared.rb
         
     | 
| 
       369 
     | 
    
         
            -
            - test/isolated/test_mimic_alone.rb
         
     | 
| 
       370 
     | 
    
         
            -
            - test/isolated/test_mimic_as_json.rb
         
     | 
| 
      
 356 
     | 
    
         
            +
            - test/sample/rect.rb
         
     | 
| 
      
 357 
     | 
    
         
            +
            - test/sample/shape.rb
         
     | 
| 
      
 358 
     | 
    
         
            +
            - test/sample/text.rb
         
     | 
| 
      
 359 
     | 
    
         
            +
            - test/sample.rb
         
     | 
| 
      
 360 
     | 
    
         
            +
            - test/sample_json.rb
         
     | 
| 
      
 361 
     | 
    
         
            +
            - test/test_compat.rb
         
     | 
| 
      
 362 
     | 
    
         
            +
            - test/test_custom.rb
         
     | 
| 
       371 
363 
     | 
    
         
             
            - test/test_debian.rb
         
     | 
| 
      
 364 
     | 
    
         
            +
            - test/test_fast.rb
         
     | 
| 
      
 365 
     | 
    
         
            +
            - test/test_file.rb
         
     | 
| 
       372 
366 
     | 
    
         
             
            - test/test_gc.rb
         
     | 
| 
       373 
     | 
    
         
            -
            - test/ 
     | 
| 
      
 367 
     | 
    
         
            +
            - test/test_hash.rb
         
     | 
| 
      
 368 
     | 
    
         
            +
            - test/test_integer_range.rb
         
     | 
| 
      
 369 
     | 
    
         
            +
            - test/test_null.rb
         
     | 
| 
      
 370 
     | 
    
         
            +
            - test/test_object.rb
         
     | 
| 
      
 371 
     | 
    
         
            +
            - test/test_rails.rb
         
     | 
| 
      
 372 
     | 
    
         
            +
            - test/test_saj.rb
         
     | 
| 
      
 373 
     | 
    
         
            +
            - test/test_scp.rb
         
     | 
| 
      
 374 
     | 
    
         
            +
            - test/test_strict.rb
         
     | 
| 
       374 
375 
     | 
    
         
             
            - test/test_various.rb
         
     | 
| 
       375 
     | 
    
         
            -
            - test/ 
     | 
| 
       376 
     | 
    
         
            -
            - test/ 
     | 
| 
       377 
     | 
    
         
            -
            - test/ 
     | 
| 
       378 
     | 
    
         
            -
            - test/ 
     | 
| 
       379 
     | 
    
         
            -
            - test/ 
     | 
| 
       380 
     | 
    
         
            -
            - test/ 
     | 
| 
       381 
     | 
    
         
            -
            - test/activesupport6/decoding_test.rb
         
     | 
| 
      
 376 
     | 
    
         
            +
            - test/test_wab.rb
         
     | 
| 
      
 377 
     | 
    
         
            +
            - test/test_writer.rb
         
     | 
| 
      
 378 
     | 
    
         
            +
            - test/tests.rb
         
     | 
| 
      
 379 
     | 
    
         
            +
            - test/tests_mimic.rb
         
     | 
| 
      
 380 
     | 
    
         
            +
            - test/tests_mimic_addition.rb
         
     | 
| 
      
 381 
     | 
    
         
            +
            - test/zoo.rb
         
     |