oj 3.3.7 → 3.3.8
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/dump.c +16 -1
- data/ext/oj/dump.h +2 -0
- data/ext/oj/dump_compat.c +1 -2
- data/ext/oj/dump_strict.c +1 -1
- data/ext/oj/mimic_json.c +0 -1
- data/ext/oj/rails.c +1 -1
- data/lib/oj/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 28fc69ea25c02c80fd4d5d1622f05350e0fd6d5e
         | 
| 4 | 
            +
              data.tar.gz: 143ef4198b371f30dbdd12d8e4f1ecd4b43cdb08
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b0478c6f09d46f53827b981ed947002c8b723884c83276384b1316f2d85db9dd29dba0095d4d6a8d618062c313954d5883e05b08e8ba016bb949aae43b797dad
         | 
| 7 | 
            +
              data.tar.gz: 826fdefe54a411b7b92cc5563caeacccced2a7c0a25f869e1995fca3309cef7e4692e0ddb6e219317e788cc40daf3ddd4c0eb1c45bc932b4ab0e44a7c9d44bae
         | 
    
        data/ext/oj/dump.c
    CHANGED
    
    | @@ -1110,7 +1110,7 @@ oj_dump_float(VALUE obj, int depth, Out out, bool as_ok) { | |
| 1110 1110 | 
             
            	strncpy(buf, rb_string_value_ptr((VALUE*)&rstr), cnt);
         | 
| 1111 1111 | 
             
            	buf[cnt] = '\0';
         | 
| 1112 1112 | 
             
                } else {
         | 
| 1113 | 
            -
            	cnt =  | 
| 1113 | 
            +
            	cnt = oj_dump_float_printf(buf, sizeof(buf), obj, d, out->opts->float_fmt);
         | 
| 1114 1114 | 
             
                }
         | 
| 1115 1115 | 
             
                assure_size(out, cnt);
         | 
| 1116 1116 | 
             
                for (b = buf; '\0' != *b; b++) {
         | 
| @@ -1118,3 +1118,18 @@ oj_dump_float(VALUE obj, int depth, Out out, bool as_ok) { | |
| 1118 1118 | 
             
                }
         | 
| 1119 1119 | 
             
                *out->cur = '\0';
         | 
| 1120 1120 | 
             
            }
         | 
| 1121 | 
            +
             | 
| 1122 | 
            +
            int
         | 
| 1123 | 
            +
            oj_dump_float_printf(char *buf, size_t blen, VALUE obj, double d, const char *format) {
         | 
| 1124 | 
            +
                int	cnt = snprintf(buf, blen, format, d);
         | 
| 1125 | 
            +
             | 
| 1126 | 
            +
                // Round off issues at 16 significant digits so check for obvious ones of
         | 
| 1127 | 
            +
                // 0001 and 9999.
         | 
| 1128 | 
            +
                if (17 <= cnt && (0 == strcmp("0001", buf + cnt - 4) || 0 == strcmp("9999", buf + cnt - 4))) {
         | 
| 1129 | 
            +
            	volatile VALUE	rstr = rb_funcall(obj, oj_to_s_id, 0);
         | 
| 1130 | 
            +
             | 
| 1131 | 
            +
            	strcpy(buf, rb_string_value_ptr((VALUE*)&rstr));
         | 
| 1132 | 
            +
            	cnt = (int)RSTRING_LEN(rstr);
         | 
| 1133 | 
            +
                }
         | 
| 1134 | 
            +
                return cnt;
         | 
| 1135 | 
            +
            }
         | 
    
        data/ext/oj/dump.h
    CHANGED
    
    | @@ -48,6 +48,8 @@ extern void	oj_dump_wab_val(VALUE obj, int depth, Out out); | |
| 48 48 | 
             
            extern VALUE	oj_add_to_json(int argc, VALUE *argv, VALUE self);
         | 
| 49 49 | 
             
            extern VALUE	oj_remove_to_json(int argc, VALUE *argv, VALUE self);
         | 
| 50 50 |  | 
| 51 | 
            +
            extern int	oj_dump_float_printf(char *buf, size_t blen, VALUE obj, double d, const char *format);
         | 
| 52 | 
            +
             | 
| 51 53 | 
             
            inline static void
         | 
| 52 54 | 
             
            assure_size(Out out, size_t len) {
         | 
| 53 55 | 
             
                if (out->end - out->cur <= (long)len) {
         | 
    
        data/ext/oj/dump_compat.c
    CHANGED
    
    | @@ -611,10 +611,9 @@ dump_float(VALUE obj, int depth, Out out, bool as_ok) { | |
| 611 611 | 
             
            	    raise_json_err("NaN not allowed in JSON.", "GeneratorError");
         | 
| 612 612 | 
             
            	}
         | 
| 613 613 | 
             
                } else if (d == (double)(long long int)d) {
         | 
| 614 | 
            -
            	//cnt = snprintf(buf, sizeof(buf), "%.1Lf", (long double)d);
         | 
| 615 614 | 
             
            	cnt = snprintf(buf, sizeof(buf), "%.1f", d);
         | 
| 616 615 | 
             
                } else if (oj_rails_float_opt) {
         | 
| 617 | 
            -
            	cnt =  | 
| 616 | 
            +
            	cnt = oj_dump_float_printf(buf, sizeof(buf), obj, d, "%0.16g");
         | 
| 618 617 | 
             
                } else {
         | 
| 619 618 | 
             
            	volatile VALUE	rstr = rb_funcall(obj, oj_to_s_id, 0);
         | 
| 620 619 |  | 
    
        data/ext/oj/dump_strict.c
    CHANGED
    
    | @@ -115,7 +115,7 @@ dump_float(VALUE obj, int depth, Out out, bool as_ok) { | |
| 115 115 | 
             
            	    strncpy(buf, rb_string_value_ptr((VALUE*)&rstr), cnt);
         | 
| 116 116 | 
             
            	    buf[cnt] = '\0';
         | 
| 117 117 | 
             
            	} else {
         | 
| 118 | 
            -
            	    cnt =  | 
| 118 | 
            +
            	    cnt = oj_dump_float_printf(buf, sizeof(buf), obj, d, out->opts->float_fmt);
         | 
| 119 119 | 
             
            	}
         | 
| 120 120 | 
             
                }
         | 
| 121 121 | 
             
                assure_size(out, cnt);
         | 
    
        data/ext/oj/mimic_json.c
    CHANGED
    
    | @@ -795,7 +795,6 @@ oj_mimic_json_methods(VALUE json) { | |
| 795 795 | 
             
                } else {
         | 
| 796 796 | 
             
                	oj_json_parser_error_class = rb_define_class_under(json, "ParserError", json_error);
         | 
| 797 797 | 
             
                }
         | 
| 798 | 
            -
                printf("*** setting parse error to %lx %s\n", oj_json_parser_error_class, rb_class2name(oj_json_parser_error_class));
         | 
| 799 798 | 
             
                if (rb_const_defined_at(json, rb_intern("GeneratorError"))) {
         | 
| 800 799 | 
             
                    oj_json_generator_error_class = rb_const_get(json, rb_intern("GeneratorError"));
         | 
| 801 800 | 
             
                } else {
         | 
    
        data/ext/oj/rails.c
    CHANGED
    
    | @@ -972,7 +972,7 @@ dump_float(VALUE obj, int depth, Out out, bool as_ok) { | |
| 972 972 | 
             
            	} else if (d == (double)(long long int)d) {
         | 
| 973 973 | 
             
            	    cnt = snprintf(buf, sizeof(buf), "%.1f", d);
         | 
| 974 974 | 
             
            	} else if (oj_rails_float_opt) {
         | 
| 975 | 
            -
            	    cnt =  | 
| 975 | 
            +
            	    cnt = oj_dump_float_printf(buf, sizeof(buf), obj, d, "%0.16g");
         | 
| 976 976 | 
             
            	} else {
         | 
| 977 977 | 
             
            	    volatile VALUE	rstr = rb_funcall(obj, oj_to_s_id, 0);
         | 
| 978 978 |  | 
    
        data/lib/oj/version.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.3. | 
| 4 | 
            +
              version: 3.3.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Peter Ohler
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017-10- | 
| 11 | 
            +
            date: 2017-10-04 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rake-compiler
         |