oj 3.3.10 → 3.4.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/custom.c +6 -0
- data/ext/oj/dump.c +15 -0
- data/ext/oj/dump.h +2 -0
- data/ext/oj/dump_object.c +16 -0
- data/ext/oj/oj.c +37 -2
- data/ext/oj/oj.h +1 -0
- data/lib/oj/version.rb +1 -1
- data/pages/Modes.md +1 -0
- data/pages/Options.md +5 -0
- data/test/test_object.rb +10 -1
- data/test/test_various.rb +2 -1
- metadata +68 -70
- data/test/bug.rb +0 -25
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9badf52195a57cbb014c118468e251a6410492be
         | 
| 4 | 
            +
              data.tar.gz: 8cf51afa4ee58bbb314625d6b4e4c91c69c1f816
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3366cc54755af4f3d8abbded2afac3b1235a4fe25315964d6d1225c69e849611eecedb2e7d893e14b72514bcc0115b1a2cce94bc007f0e8460230798d1531276
         | 
| 7 | 
            +
              data.tar.gz: 02d082acfd67708b44582a8fe69e10a5f639cc56ec57484c56c283be96ffc4d64b0a41b4c31bac2f707225388b2f5cd2551c9e6aba048c4c973e6c6461a462a8
         | 
    
        data/ext/oj/custom.c
    CHANGED
    
    | @@ -244,6 +244,9 @@ static int | |
| 244 244 | 
             
            hash_cb(VALUE key, VALUE value, Out out) {
         | 
| 245 245 | 
             
                int	depth = out->depth;
         | 
| 246 246 |  | 
| 247 | 
            +
                if (oj_dump_ignore(out->opts, value)) {
         | 
| 248 | 
            +
            	return ST_CONTINUE;
         | 
| 249 | 
            +
                }
         | 
| 247 250 | 
             
                if (out->omit_nil && Qnil == value) {
         | 
| 248 251 | 
             
            	return ST_CONTINUE;
         | 
| 249 252 | 
             
                }
         | 
| @@ -529,6 +532,9 @@ dump_attr_cb(ID key, VALUE value, Out out) { | |
| 529 532 | 
             
                size_t	size;
         | 
| 530 533 | 
             
                const char	*attr;
         | 
| 531 534 |  | 
| 535 | 
            +
                if (oj_dump_ignore(out->opts, value)) {
         | 
| 536 | 
            +
            	return ST_CONTINUE;
         | 
| 537 | 
            +
                }
         | 
| 532 538 | 
             
                if (out->omit_nil && Qnil == value) {
         | 
| 533 539 | 
             
            	return ST_CONTINUE;
         | 
| 534 540 | 
             
                }
         | 
    
        data/ext/oj/dump.c
    CHANGED
    
    | @@ -1143,3 +1143,18 @@ oj_dump_float_printf(char *buf, size_t blen, VALUE obj, double d, const char *fo | |
| 1143 1143 | 
             
                }
         | 
| 1144 1144 | 
             
                return cnt;
         | 
| 1145 1145 | 
             
            }
         | 
| 1146 | 
            +
             | 
| 1147 | 
            +
            bool
         | 
| 1148 | 
            +
            oj_dump_ignore(Options opts, VALUE obj) {
         | 
| 1149 | 
            +
                if (NULL != opts->ignore && (ObjectMode == opts->mode || CustomMode == opts->mode)) {
         | 
| 1150 | 
            +
            	VALUE	*vp = opts->ignore;
         | 
| 1151 | 
            +
            	VALUE	clas = rb_obj_class(obj);
         | 
| 1152 | 
            +
             | 
| 1153 | 
            +
            	for (; Qnil != *vp; vp++) {
         | 
| 1154 | 
            +
            	    if (clas == *vp) {
         | 
| 1155 | 
            +
            		return true;
         | 
| 1156 | 
            +
            	    }
         | 
| 1157 | 
            +
            	}
         | 
| 1158 | 
            +
                }
         | 
| 1159 | 
            +
                return false;
         | 
| 1160 | 
            +
            }
         | 
    
        data/ext/oj/dump.h
    CHANGED
    
    | @@ -50,6 +50,8 @@ extern VALUE	oj_remove_to_json(int argc, VALUE *argv, VALUE self); | |
| 50 50 |  | 
| 51 51 | 
             
            extern int	oj_dump_float_printf(char *buf, size_t blen, VALUE obj, double d, const char *format);
         | 
| 52 52 |  | 
| 53 | 
            +
            extern bool	oj_dump_ignore(Options opts, VALUE obj);
         | 
| 54 | 
            +
             | 
| 53 55 | 
             
            inline static void
         | 
| 54 56 | 
             
            assure_size(Out out, size_t len) {
         | 
| 55 57 | 
             
                if (out->end - out->cur <= (long)len) {
         | 
    
        data/ext/oj/dump_object.c
    CHANGED
    
    | @@ -227,6 +227,9 @@ hash_cb(VALUE key, VALUE value, Out out) { | |
| 227 227 | 
             
                int		depth = out->depth;
         | 
| 228 228 | 
             
                long	size = depth * out->indent + 1;
         | 
| 229 229 |  | 
| 230 | 
            +
                if (oj_dump_ignore(out->opts, value)) {
         | 
| 231 | 
            +
            	return ST_CONTINUE;
         | 
| 232 | 
            +
                }
         | 
| 230 233 | 
             
                if (out->omit_nil && Qnil == value) {
         | 
| 231 234 | 
             
            	return ST_CONTINUE;
         | 
| 232 235 | 
             
                }
         | 
| @@ -349,6 +352,9 @@ dump_attr_cb(ID key, VALUE value, Out out) { | |
| 349 352 | 
             
                size_t	size = depth * out->indent + 1;
         | 
| 350 353 | 
             
                const char	*attr = rb_id2name(key);
         | 
| 351 354 |  | 
| 355 | 
            +
                if (oj_dump_ignore(out->opts, value)) {
         | 
| 356 | 
            +
            	return ST_CONTINUE;
         | 
| 357 | 
            +
                }
         | 
| 352 358 | 
             
                if (out->omit_nil && Qnil == value) {
         | 
| 353 359 | 
             
            	return ST_CONTINUE;
         | 
| 354 360 | 
             
                }
         | 
| @@ -607,6 +613,10 @@ dump_obj_attrs(VALUE obj, VALUE clas, slot_t id, int depth, Out out) { | |
| 607 613 | 
             
            	    vid = rb_to_id(*np);
         | 
| 608 614 | 
             
            	    attr = rb_id2name(vid);
         | 
| 609 615 | 
             
            	    value = rb_ivar_get(obj, vid);
         | 
| 616 | 
            +
             | 
| 617 | 
            +
            	    if (oj_dump_ignore(out->opts, value)) {
         | 
| 618 | 
            +
            		continue;
         | 
| 619 | 
            +
            	    }
         | 
| 610 620 | 
             
            	    if (out->omit_nil && Qnil == value) {
         | 
| 611 621 | 
             
            		continue;
         | 
| 612 622 | 
             
            	    }
         | 
| @@ -735,6 +745,9 @@ dump_struct(VALUE obj, int depth, Out out, bool as_ok) { | |
| 735 745 |  | 
| 736 746 | 
             
            	for (i = 0; i < cnt; i++) {
         | 
| 737 747 | 
             
            	    v = RSTRUCT_GET(obj, i);
         | 
| 748 | 
            +
            	    if (oj_dump_ignore(out->opts, v)) {
         | 
| 749 | 
            +
            		v = Qnil;
         | 
| 750 | 
            +
            	    }
         | 
| 738 751 | 
             
            	    assure_size(out, size);
         | 
| 739 752 | 
             
            	    fill_indent(out, d3);
         | 
| 740 753 | 
             
            	    oj_dump_obj_val(v, d3, out);
         | 
| @@ -750,6 +763,9 @@ dump_struct(VALUE obj, int depth, Out out, bool as_ok) { | |
| 750 763 | 
             
            	for (i = 0; i < slen; i++) {
         | 
| 751 764 | 
             
            	    assure_size(out, size);
         | 
| 752 765 | 
             
            	    fill_indent(out, d3);
         | 
| 766 | 
            +
            	    if (oj_dump_ignore(out->opts, v)) {
         | 
| 767 | 
            +
            		v = Qnil;
         | 
| 768 | 
            +
            	    }
         | 
| 753 769 | 
             
            	    oj_dump_obj_val(rb_struct_aref(obj, INT2FIX(i)), d3, out, 0, 0, true);
         | 
| 754 770 | 
             
            	    *out->cur++ = ',';
         | 
| 755 771 | 
             
            	}
         | 
    
        data/ext/oj/oj.c
    CHANGED
    
    | @@ -118,6 +118,7 @@ static VALUE	escape_mode_sym; | |
| 118 118 | 
             
            static VALUE	float_prec_sym;
         | 
| 119 119 | 
             
            static VALUE	float_sym;
         | 
| 120 120 | 
             
            static VALUE	huge_sym;
         | 
| 121 | 
            +
            static VALUE	ignore_sym;
         | 
| 121 122 | 
             
            static VALUE	json_sym;
         | 
| 122 123 | 
             
            static VALUE	match_string_sym;
         | 
| 123 124 | 
             
            static VALUE	mode_sym;
         | 
| @@ -207,7 +208,8 @@ struct _Options	oj_default_options = { | |
| 207 208 | 
             
            	NULL,	// head
         | 
| 208 209 | 
             
            	NULL,	// tail
         | 
| 209 210 | 
             
            	{ '\0' }, // err
         | 
| 210 | 
            -
                }
         | 
| 211 | 
            +
                },
         | 
| 212 | 
            +
                NULL,	// ignore
         | 
| 211 213 | 
             
            };
         | 
| 212 214 |  | 
| 213 215 | 
             
            /* Document-method: default_options()
         | 
| @@ -244,6 +246,7 @@ struct _Options	oj_default_options = { | |
| 244 246 | 
             
             * - *:hash_class* [_Class_|_nil_] Class to use instead of Hash on load, :object_class can also be used
         | 
| 245 247 | 
             
             * - *:array_class* [_Class_|_nil_] Class to use instead of Array on load
         | 
| 246 248 | 
             
             * - *:omit_nil* [_true_|_false_] if true Hash and Object attributes with nil values are omitted
         | 
| 249 | 
            +
             * - *:ignore* [_nil_|Array] either nil or an Array of classes to ignore when dumping
         | 
| 247 250 | 
             
             *
         | 
| 248 251 | 
             
             * Return [_Hash_] all current option settings.
         | 
| 249 252 | 
             
             */
         | 
| @@ -320,7 +323,18 @@ get_def_opts(VALUE self) { | |
| 320 323 | 
             
                rb_hash_aset(opts, omit_nil_sym, oj_default_options.dump_opts.omit_nil ? Qtrue : Qfalse);
         | 
| 321 324 | 
             
                rb_hash_aset(opts, oj_hash_class_sym, oj_default_options.hash_class);
         | 
| 322 325 | 
             
                rb_hash_aset(opts, oj_array_class_sym, oj_default_options.array_class);
         | 
| 323 | 
            -
             | 
| 326 | 
            +
             | 
| 327 | 
            +
                if (NULL == oj_default_options.ignore) {
         | 
| 328 | 
            +
            	rb_hash_aset(opts, ignore_sym, Qnil);
         | 
| 329 | 
            +
                } else {
         | 
| 330 | 
            +
            	VALUE		*vp;
         | 
| 331 | 
            +
            	volatile VALUE	a = rb_ary_new();
         | 
| 332 | 
            +
            	
         | 
| 333 | 
            +
            	for (vp = oj_default_options.ignore; Qnil != *vp; vp++) {
         | 
| 334 | 
            +
            	    rb_ary_push(a, *vp);
         | 
| 335 | 
            +
            	}
         | 
| 336 | 
            +
            	rb_hash_aset(opts, ignore_sym, a);
         | 
| 337 | 
            +
                }
         | 
| 324 338 | 
             
                return opts;
         | 
| 325 339 | 
             
            }
         | 
| 326 340 |  | 
| @@ -358,6 +372,7 @@ get_def_opts(VALUE self) { | |
| 358 372 | 
             
             *   - *:hash_class* [_Class_|_nil_] Class to use instead of Hash on load, :object_class can also be used.
         | 
| 359 373 | 
             
             *   - *:array_class* [_Class_|_nil_] Class to use instead of Array on load.
         | 
| 360 374 | 
             
             *   - *:omit_nil* [_true_|_false_] if true Hash and Object attributes with nil values are omitted.
         | 
| 375 | 
            +
             *   - *:ignore* [_nil_|Array] either nil or an Array of classes to ignore when dumping
         | 
| 361 376 | 
             
             */
         | 
| 362 377 | 
             
            static VALUE
         | 
| 363 378 | 
             
            set_def_opts(VALUE self, VALUE opts) {
         | 
| @@ -672,6 +687,25 @@ oj_parse_options(VALUE ropts, Options copts) { | |
| 672 687 | 
             
            	}
         | 
| 673 688 | 
             
                }
         | 
| 674 689 | 
             
                oj_parse_opt_match_string(&copts->str_rx, ropts);
         | 
| 690 | 
            +
                if (Qtrue == rb_funcall(ropts, oj_has_key_id, 1, ignore_sym)) {
         | 
| 691 | 
            +
            	xfree(copts->ignore);
         | 
| 692 | 
            +
            	copts->ignore = NULL;
         | 
| 693 | 
            +
            	if (Qnil != (v = rb_hash_lookup(ropts, ignore_sym))) {
         | 
| 694 | 
            +
            	    int	cnt;
         | 
| 695 | 
            +
             | 
| 696 | 
            +
            	    rb_check_type(v, T_ARRAY);
         | 
| 697 | 
            +
            	    cnt = (int)RARRAY_LEN(v);
         | 
| 698 | 
            +
            	    if (0 < cnt) {
         | 
| 699 | 
            +
            		int	i;
         | 
| 700 | 
            +
            		
         | 
| 701 | 
            +
            		copts->ignore = ALLOC_N(VALUE, cnt + 1);
         | 
| 702 | 
            +
            		for (i = 0; i < cnt; i++) {
         | 
| 703 | 
            +
            		    copts->ignore[i] = rb_ary_entry(v, i);
         | 
| 704 | 
            +
            		}
         | 
| 705 | 
            +
            		copts->ignore[i] = Qnil;
         | 
| 706 | 
            +
            	    }
         | 
| 707 | 
            +
            	}
         | 
| 708 | 
            +
                }
         | 
| 675 709 | 
             
            }
         | 
| 676 710 |  | 
| 677 711 | 
             
            static int
         | 
| @@ -1604,6 +1638,7 @@ Init_oj() { | |
| 1604 1638 | 
             
                float_prec_sym = ID2SYM(rb_intern("float_precision"));	rb_gc_register_address(&float_prec_sym);
         | 
| 1605 1639 | 
             
                float_sym = ID2SYM(rb_intern("float"));			rb_gc_register_address(&float_sym);
         | 
| 1606 1640 | 
             
                huge_sym = ID2SYM(rb_intern("huge"));			rb_gc_register_address(&huge_sym);
         | 
| 1641 | 
            +
                ignore_sym = ID2SYM(rb_intern("ignore"));			rb_gc_register_address(&ignore_sym);
         | 
| 1607 1642 | 
             
                json_sym = ID2SYM(rb_intern("json"));			rb_gc_register_address(&json_sym);
         | 
| 1608 1643 | 
             
                match_string_sym = ID2SYM(rb_intern("match_string"));	rb_gc_register_address(&match_string_sym);
         | 
| 1609 1644 | 
             
                mode_sym = ID2SYM(rb_intern("mode"));			rb_gc_register_address(&mode_sym);
         | 
    
        data/ext/oj/oj.h
    CHANGED
    
    
    
        data/lib/oj/version.rb
    CHANGED
    
    
    
        data/pages/Modes.md
    CHANGED
    
    | @@ -104,6 +104,7 @@ information. | |
| 104 104 | 
             
                | :escape_mode           | Symbol  |         |         |         |         |         |       x |         |
         | 
| 105 105 | 
             
                | :float_precision       | Fixnum  |       x |       x |         |         |         |       x |         |
         | 
| 106 106 | 
             
                | :hash_class            | Class   |         |         |       x |       x |         |       x |         |
         | 
| 107 | 
            +
                | :ignore                | Array   |         |         |         |         |       x |       x |         |
         | 
| 107 108 | 
             
                | :indent                | Integer |       x |       x |       3 |       4 |       x |       x |       x |
         | 
| 108 109 | 
             
                | :indent_str            | String  |         |         |       x |       x |         |       x |         |
         | 
| 109 110 | 
             
                | :match_string          | Hash    |         |         |       x |       x |         |       x |         |
         | 
    
        data/pages/Options.md
    CHANGED
    
    | @@ -130,6 +130,11 @@ The number of digits of precision when dumping floats, 0 indicates use Ruby dire | |
| 130 130 |  | 
| 131 131 | 
             
            Class to use instead of Hash on load. This is the same as the :object_class.
         | 
| 132 132 |  | 
| 133 | 
            +
            ### :ignore [Array]
         | 
| 134 | 
            +
             | 
| 135 | 
            +
            Ignore all the classes in the Array when dumping. A value of nil indicates
         | 
| 136 | 
            +
            ignore nothing.
         | 
| 137 | 
            +
             | 
| 133 138 | 
             
            ### :indent [Fixnum]
         | 
| 134 139 |  | 
| 135 140 | 
             
            Number of spaces to indent each element in a JSON document, zero is no newline
         | 
    
        data/test/test_object.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 | 
            -
            # encoding:  | 
| 2 | 
            +
            # encoding: utf-8
         | 
| 3 3 |  | 
| 4 4 | 
             
            $: << File.dirname(__FILE__)
         | 
| 5 5 |  | 
| @@ -761,6 +761,15 @@ class ObjectJuice < Minitest::Test | |
| 761 761 | 
             
                assert_equal(obj, obj2)
         | 
| 762 762 | 
             
              end
         | 
| 763 763 |  | 
| 764 | 
            +
              def test_ignore
         | 
| 765 | 
            +
                obj = Jeez.new(true, 58)
         | 
| 766 | 
            +
                json = Oj.dump({ 'a' => 7, 'b' => obj }, :mode => :object, :indent => 2, :ignore => [ Jeez ])
         | 
| 767 | 
            +
                assert_equal(%|{
         | 
| 768 | 
            +
              "a":7
         | 
| 769 | 
            +
            }
         | 
| 770 | 
            +
            |, json)
         | 
| 771 | 
            +
              end
         | 
| 772 | 
            +
             | 
| 764 773 | 
             
              def test_exception
         | 
| 765 774 | 
             
                err = nil
         | 
| 766 775 | 
             
                begin
         | 
    
        data/test/test_various.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 | 
            -
            # encoding:  | 
| 2 | 
            +
            # encoding: utf-8
         | 
| 3 3 |  | 
| 4 4 | 
             
            $: << File.dirname(__FILE__)
         | 
| 5 5 |  | 
| @@ -154,6 +154,7 @@ class Juice < Minitest::Test | |
| 154 154 | 
             
                  :omit_nil=>false,
         | 
| 155 155 | 
             
                  :allow_nan=>true,
         | 
| 156 156 | 
             
                  :array_class=>Array,
         | 
| 157 | 
            +
                  :ignore=>nil,
         | 
| 157 158 | 
             
                }
         | 
| 158 159 | 
             
                Oj.default_options = alt
         | 
| 159 160 | 
             
                #keys = alt.keys
         | 
    
        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.4.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: 2018-01-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rake-compiler
         | 
| @@ -80,15 +80,15 @@ extensions: | |
| 80 80 | 
             
            extra_rdoc_files:
         | 
| 81 81 | 
             
            - README.md
         | 
| 82 82 | 
             
            - pages/Advanced.md
         | 
| 83 | 
            -
            - pages/ | 
| 84 | 
            -
            - pages/Custom.md
         | 
| 83 | 
            +
            - pages/WAB.md
         | 
| 85 84 | 
             
            - pages/Encoding.md
         | 
| 86 | 
            -
            - pages/JsonGem.md
         | 
| 87 85 | 
             
            - pages/Modes.md
         | 
| 88 | 
            -
            - pages/Options.md
         | 
| 89 | 
            -
            - pages/Rails.md
         | 
| 90 86 | 
             
            - pages/Security.md
         | 
| 91 | 
            -
            - pages/ | 
| 87 | 
            +
            - pages/JsonGem.md
         | 
| 88 | 
            +
            - pages/Rails.md
         | 
| 89 | 
            +
            - pages/Compatibility.md
         | 
| 90 | 
            +
            - pages/Custom.md
         | 
| 91 | 
            +
            - pages/Options.md
         | 
| 92 92 | 
             
            files:
         | 
| 93 93 | 
             
            - LICENSE
         | 
| 94 94 | 
             
            - README.md
         | 
| @@ -172,7 +172,6 @@ files: | |
| 172 172 | 
             
            - test/activesupport5/encoding_test_cases.rb
         | 
| 173 173 | 
             
            - test/activesupport5/test_helper.rb
         | 
| 174 174 | 
             
            - test/activesupport5/time_zone_test_helpers.rb
         | 
| 175 | 
            -
            - test/bug.rb
         | 
| 176 175 | 
             
            - test/files.rb
         | 
| 177 176 | 
             
            - test/helper.rb
         | 
| 178 177 | 
             
            - test/isolated/shared.rb
         | 
| @@ -265,78 +264,77 @@ signing_key: | |
| 265 264 | 
             
            specification_version: 4
         | 
| 266 265 | 
             
            summary: A fast JSON parser and serializer.
         | 
| 267 266 | 
             
            test_files:
         | 
| 268 | 
            -
            - test/_test_active.rb
         | 
| 269 | 
            -
            - test/_test_active_mimic.rb
         | 
| 270 | 
            -
            - test/_test_mimic_rails.rb
         | 
| 271 | 
            -
            - test/activesupport4/decoding_test.rb
         | 
| 272 | 
            -
            - test/activesupport4/encoding_test.rb
         | 
| 273 | 
            -
            - test/activesupport4/test_helper.rb
         | 
| 274 | 
            -
            - test/activesupport5/decoding_test.rb
         | 
| 275 | 
            -
            - test/activesupport5/encoding_test.rb
         | 
| 276 | 
            -
            - test/activesupport5/encoding_test_cases.rb
         | 
| 277 267 | 
             
            - test/activesupport5/test_helper.rb
         | 
| 278 268 | 
             
            - test/activesupport5/time_zone_test_helpers.rb
         | 
| 279 | 
            -
            - test/ | 
| 269 | 
            +
            - test/activesupport5/decoding_test.rb
         | 
| 270 | 
            +
            - test/activesupport5/encoding_test_cases.rb
         | 
| 271 | 
            +
            - test/activesupport5/encoding_test.rb
         | 
| 272 | 
            +
            - test/test_file.rb
         | 
| 280 273 | 
             
            - test/files.rb
         | 
| 281 | 
            -
            - test/helper.rb
         | 
| 282 | 
            -
            - test/isolated/shared.rb
         | 
| 283 | 
            -
            - test/isolated/test_mimic_after.rb
         | 
| 284 | 
            -
            - test/isolated/test_mimic_alone.rb
         | 
| 285 | 
            -
            - test/isolated/test_mimic_as_json.rb
         | 
| 286 | 
            -
            - test/isolated/test_mimic_before.rb
         | 
| 287 | 
            -
            - test/isolated/test_mimic_define.rb
         | 
| 288 | 
            -
            - test/isolated/test_mimic_rails_after.rb
         | 
| 289 | 
            -
            - test/isolated/test_mimic_rails_before.rb
         | 
| 290 | 
            -
            - test/isolated/test_mimic_redefine.rb
         | 
| 291 | 
            -
            - test/json_gem/json_addition_test.rb
         | 
| 292 | 
            -
            - test/json_gem/json_common_interface_test.rb
         | 
| 293 | 
            -
            - test/json_gem/json_encoding_test.rb
         | 
| 294 | 
            -
            - test/json_gem/json_ext_parser_test.rb
         | 
| 295 | 
            -
            - test/json_gem/json_fixtures_test.rb
         | 
| 296 | 
            -
            - test/json_gem/json_generator_test.rb
         | 
| 297 | 
            -
            - test/json_gem/json_generic_object_test.rb
         | 
| 298 | 
            -
            - test/json_gem/json_parser_test.rb
         | 
| 299 | 
            -
            - test/json_gem/json_string_matching_test.rb
         | 
| 300 | 
            -
            - test/json_gem/test_helper.rb
         | 
| 301 | 
            -
            - test/perf.rb
         | 
| 302 | 
            -
            - test/perf_compat.rb
         | 
| 303 | 
            -
            - test/perf_fast.rb
         | 
| 304 | 
            -
            - test/perf_file.rb
         | 
| 305 | 
            -
            - test/perf_object.rb
         | 
| 306 | 
            -
            - test/perf_saj.rb
         | 
| 307 274 | 
             
            - test/perf_scp.rb
         | 
| 308 | 
            -
            - test/ | 
| 309 | 
            -
            - test/ | 
| 310 | 
            -
            - test/ | 
| 311 | 
            -
            - test/ | 
| 312 | 
            -
            - test/ | 
| 313 | 
            -
            - test/sample/doc.rb
         | 
| 275 | 
            +
            - test/test_debian.rb
         | 
| 276 | 
            +
            - test/test_gc.rb
         | 
| 277 | 
            +
            - test/_test_mimic_rails.rb
         | 
| 278 | 
            +
            - test/test_writer.rb
         | 
| 279 | 
            +
            - test/test_hash.rb
         | 
| 314 280 | 
             
            - test/sample/file.rb
         | 
| 315 | 
            -
            - test/sample/group.rb
         | 
| 316 281 | 
             
            - test/sample/hasprops.rb
         | 
| 317 282 | 
             
            - test/sample/layer.rb
         | 
| 318 | 
            -
            - test/sample/ | 
| 283 | 
            +
            - test/sample/change.rb
         | 
| 284 | 
            +
            - test/sample/doc.rb
         | 
| 319 285 | 
             
            - test/sample/oval.rb
         | 
| 320 | 
            -
            - test/sample/rect.rb
         | 
| 321 286 | 
             
            - test/sample/shape.rb
         | 
| 322 287 | 
             
            - test/sample/text.rb
         | 
| 323 | 
            -
            - test/sample.rb
         | 
| 324 | 
            -
            - test/ | 
| 325 | 
            -
            - test/ | 
| 326 | 
            -
            - test/ | 
| 327 | 
            -
            - test/ | 
| 328 | 
            -
            - test/test_fast.rb
         | 
| 329 | 
            -
            - test/test_file.rb
         | 
| 330 | 
            -
            - test/test_gc.rb
         | 
| 331 | 
            -
            - test/test_hash.rb
         | 
| 332 | 
            -
            - test/test_null.rb
         | 
| 288 | 
            +
            - test/sample/group.rb
         | 
| 289 | 
            +
            - test/sample/dir.rb
         | 
| 290 | 
            +
            - test/sample/line.rb
         | 
| 291 | 
            +
            - test/sample/rect.rb
         | 
| 292 | 
            +
            - test/tests.rb
         | 
| 333 293 | 
             
            - test/test_object.rb
         | 
| 294 | 
            +
            - test/perf_wab.rb
         | 
| 295 | 
            +
            - test/tests_mimic.rb
         | 
| 296 | 
            +
            - test/perf_saj.rb
         | 
| 297 | 
            +
            - test/tests_mimic_addition.rb
         | 
| 334 298 | 
             
            - test/test_saj.rb
         | 
| 299 | 
            +
            - test/sample.rb
         | 
| 335 300 | 
             
            - test/test_scp.rb
         | 
| 336 | 
            -
            - test/ | 
| 337 | 
            -
            - test/ | 
| 301 | 
            +
            - test/perf_object.rb
         | 
| 302 | 
            +
            - test/perf_simple.rb
         | 
| 303 | 
            +
            - test/test_null.rb
         | 
| 304 | 
            +
            - test/_test_active_mimic.rb
         | 
| 305 | 
            +
            - test/_test_active.rb
         | 
| 306 | 
            +
            - test/test_compat.rb
         | 
| 307 | 
            +
            - test/sample_json.rb
         | 
| 308 | 
            +
            - test/json_gem/test_helper.rb
         | 
| 309 | 
            +
            - test/json_gem/json_generic_object_test.rb
         | 
| 310 | 
            +
            - test/json_gem/json_common_interface_test.rb
         | 
| 311 | 
            +
            - test/json_gem/json_string_matching_test.rb
         | 
| 312 | 
            +
            - test/json_gem/json_addition_test.rb
         | 
| 313 | 
            +
            - test/json_gem/json_fixtures_test.rb
         | 
| 314 | 
            +
            - test/json_gem/json_generator_test.rb
         | 
| 315 | 
            +
            - test/json_gem/json_ext_parser_test.rb
         | 
| 316 | 
            +
            - test/json_gem/json_parser_test.rb
         | 
| 317 | 
            +
            - test/json_gem/json_encoding_test.rb
         | 
| 318 | 
            +
            - test/helper.rb
         | 
| 319 | 
            +
            - test/activesupport4/test_helper.rb
         | 
| 320 | 
            +
            - test/activesupport4/decoding_test.rb
         | 
| 321 | 
            +
            - test/activesupport4/encoding_test.rb
         | 
| 338 322 | 
             
            - test/test_wab.rb
         | 
| 339 | 
            -
            - test/ | 
| 340 | 
            -
            - test/ | 
| 341 | 
            -
            - test/ | 
| 342 | 
            -
            - test/ | 
| 323 | 
            +
            - test/perf_file.rb
         | 
| 324 | 
            +
            - test/perf_compat.rb
         | 
| 325 | 
            +
            - test/test_various.rb
         | 
| 326 | 
            +
            - test/test_strict.rb
         | 
| 327 | 
            +
            - test/test_custom.rb
         | 
| 328 | 
            +
            - test/perf_strict.rb
         | 
| 329 | 
            +
            - test/perf_fast.rb
         | 
| 330 | 
            +
            - test/isolated/test_mimic_alone.rb
         | 
| 331 | 
            +
            - test/isolated/test_mimic_after.rb
         | 
| 332 | 
            +
            - test/isolated/test_mimic_as_json.rb
         | 
| 333 | 
            +
            - test/isolated/test_mimic_rails_after.rb
         | 
| 334 | 
            +
            - test/isolated/test_mimic_before.rb
         | 
| 335 | 
            +
            - test/isolated/test_mimic_rails_before.rb
         | 
| 336 | 
            +
            - test/isolated/test_mimic_define.rb
         | 
| 337 | 
            +
            - test/isolated/shared.rb
         | 
| 338 | 
            +
            - test/isolated/test_mimic_redefine.rb
         | 
| 339 | 
            +
            - test/perf.rb
         | 
| 340 | 
            +
            - test/test_fast.rb
         | 
    
        data/test/bug.rb
    DELETED
    
    | @@ -1,25 +0,0 @@ | |
| 1 | 
            -
            #!/usr/bin/env ruby
         | 
| 2 | 
            -
            # encoding: UTF-8
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            %w(lib ext test).each do |dir|
         | 
| 5 | 
            -
              $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
         | 
| 6 | 
            -
            end
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            require 'rails'
         | 
| 9 | 
            -
            require 'active_support'
         | 
| 10 | 
            -
            require 'active_support/json'
         | 
| 11 | 
            -
            require 'oj'
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            x = {"a": BigDecimal("1.1"), "t": Time.now}
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            #ActiveSupport.encode_big_decimal_as_string = false
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            Oj.optimize_rails
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            puts "to_json #{x.to_json}"
         | 
| 20 | 
            -
             | 
| 21 | 
            -
            Oj.default_options = { bigdecimal_as_decimal: true}
         | 
| 22 | 
            -
            #puts Oj.default_options
         | 
| 23 | 
            -
             | 
| 24 | 
            -
            puts "to_json #{x.to_json}"
         | 
| 25 | 
            -
             |