oj 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of oj might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/ext/oj/dump.c +9 -0
- data/ext/oj/oj.c +1 -0
- data/lib/oj/version.rb +1 -1
- data/test/test_writer.rb +25 -2
- 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: d543163764b5c7910fcbd77662a531acb56d8cff
         | 
| 4 | 
            +
              data.tar.gz: f9c6554f24fc5ccf9ea95b755e009ddfbd603567
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b4363a5dab53fe54977632c92caec3a77e304893a70230066dfc3332c81b570e82715140330e4affcb0e69f6094c108b563675873bdd1896a667fa757d6f8249
         | 
| 7 | 
            +
              data.tar.gz: 4c7cdfcb15522a3ced05947997f31e30d2a55b2386456ea2279eb48852cbac08b8bd6378115b2f835beea264c0aea34d616c2d0ad2d7d5257506526d36fcb7ed
         | 
    
        data/README.md
    CHANGED
    
    | @@ -26,6 +26,10 @@ Follow [@peterohler on Twitter](http://twitter.com/#!/peterohler) for announceme | |
| 26 26 |  | 
| 27 27 | 
             
            [](http://travis-ci.org/ohler55/oj)
         | 
| 28 28 |  | 
| 29 | 
            +
            ### Current Release 2.7.1
         | 
| 30 | 
            +
             | 
| 31 | 
            +
             - Fixed bug in new push_key which caused duplicate characters.
         | 
| 32 | 
            +
             | 
| 29 33 | 
             
            ### Current Release 2.7.0
         | 
| 30 34 |  | 
| 31 35 | 
             
             - Added the push_key() method to the StringWriter and StreamWriter classes.
         | 
    
        data/ext/oj/dump.c
    CHANGED
    
    | @@ -2053,6 +2053,9 @@ oj_str_writer_push_key(StrWriter sw, const char *key) { | |
| 2053 2053 | 
             
                DumpType	type = sw->types[sw->depth];
         | 
| 2054 2054 | 
             
                long	size;
         | 
| 2055 2055 |  | 
| 2056 | 
            +
                if (sw->keyWritten) {
         | 
| 2057 | 
            +
            	rb_raise(rb_eStandardError, "Can not push more than one key before pushing a non-key.");
         | 
| 2058 | 
            +
                }
         | 
| 2056 2059 | 
             
                if (ObjectNew != type && ObjectType != type) {
         | 
| 2057 2060 | 
             
            	rb_raise(rb_eStandardError, "Can only push a key onto an Object.");
         | 
| 2058 2061 | 
             
                }
         | 
| @@ -2073,6 +2076,9 @@ void | |
| 2073 2076 | 
             
            oj_str_writer_push_object(StrWriter sw, const char *key) {
         | 
| 2074 2077 | 
             
                if (sw->keyWritten) {
         | 
| 2075 2078 | 
             
            	sw->keyWritten = 0;
         | 
| 2079 | 
            +
            	if (sw->out.end - sw->out.cur <= 1) {
         | 
| 2080 | 
            +
            	    grow(&sw->out, 1);
         | 
| 2081 | 
            +
            	}
         | 
| 2076 2082 | 
             
                } else {
         | 
| 2077 2083 | 
             
            	long	size;
         | 
| 2078 2084 |  | 
| @@ -2098,6 +2104,9 @@ void | |
| 2098 2104 | 
             
            oj_str_writer_push_array(StrWriter sw, const char *key) {
         | 
| 2099 2105 | 
             
                if (sw->keyWritten) {
         | 
| 2100 2106 | 
             
            	sw->keyWritten = 0;
         | 
| 2107 | 
            +
            	if (sw->out.end - sw->out.cur <= 1) {
         | 
| 2108 | 
            +
            	    grow(&sw->out, 1);
         | 
| 2109 | 
            +
            	}
         | 
| 2101 2110 | 
             
                } else {
         | 
| 2102 2111 | 
             
            	long	size;
         | 
| 2103 2112 |  | 
    
        data/ext/oj/oj.c
    CHANGED
    
    | @@ -1187,6 +1187,7 @@ stream_writer_push_key(VALUE self, VALUE key) { | |
| 1187 1187 | 
             
                StreamWriter	sw = (StreamWriter)DATA_PTR(self);
         | 
| 1188 1188 |  | 
| 1189 1189 | 
             
                rb_check_type(key, T_STRING);
         | 
| 1190 | 
            +
                stream_writer_reset_buf(sw);
         | 
| 1190 1191 | 
             
                oj_str_writer_push_key(&sw->sw, StringValuePtr(key));
         | 
| 1191 1192 | 
             
                stream_writer_write(sw);
         | 
| 1192 1193 | 
             
                return Qnil;
         | 
    
        data/lib/oj/version.rb
    CHANGED
    
    
    
        data/test/test_writer.rb
    CHANGED
    
    | @@ -61,7 +61,7 @@ class OjWriter < ::Test::Unit::TestCase | |
| 61 61 | 
             
                assert_equal('{"a1":{},"a2":{"b":{}},"a3":{}}', w.to_s)
         | 
| 62 62 | 
             
              end
         | 
| 63 63 |  | 
| 64 | 
            -
              def  | 
| 64 | 
            +
              def test_string_writer_nested_key
         | 
| 65 65 | 
             
                w = Oj::StringWriter.new(:indent => 0)
         | 
| 66 66 | 
             
                w.push_object()
         | 
| 67 67 | 
             
                w.push_key('a1')
         | 
| @@ -74,9 +74,11 @@ class OjWriter < ::Test::Unit::TestCase | |
| 74 74 | 
             
                w.pop()
         | 
| 75 75 | 
             
                w.push_key('a3')
         | 
| 76 76 | 
             
                w.push_object()
         | 
| 77 | 
            +
                w.push_key('a4')
         | 
| 78 | 
            +
                w.push_value(37)
         | 
| 77 79 | 
             
                w.pop()
         | 
| 78 80 | 
             
                w.pop()
         | 
| 79 | 
            -
                assert_equal('{"a1":{},"a2":{"b":{}},"a3":{}}', w.to_s)
         | 
| 81 | 
            +
                assert_equal('{"a1":{},"a2":{"b":{}},"a3":{"a4":37}}', w.to_s)
         | 
| 80 82 | 
             
              end
         | 
| 81 83 |  | 
| 82 84 | 
             
              def test_string_writer_value_array
         | 
| @@ -268,4 +270,25 @@ class OjWriter < ::Test::Unit::TestCase | |
| 268 270 | 
             
                assert_equal('{"a1":{},"a2":{"b":[7,true,"string"]},"a3":{}}', content)
         | 
| 269 271 | 
             
              end
         | 
| 270 272 |  | 
| 273 | 
            +
              def test_stream_writer_nested_key_object
         | 
| 274 | 
            +
                output = StringIO.open("", "w+")
         | 
| 275 | 
            +
                w = Oj::StreamWriter.new(output, :indent => 0)
         | 
| 276 | 
            +
                w.push_object()
         | 
| 277 | 
            +
                w.push_key('a1')
         | 
| 278 | 
            +
                w.push_object()
         | 
| 279 | 
            +
                w.pop()
         | 
| 280 | 
            +
                w.push_key('a2')
         | 
| 281 | 
            +
                w.push_object('x')
         | 
| 282 | 
            +
                w.push_object('b')
         | 
| 283 | 
            +
                w.pop()
         | 
| 284 | 
            +
                w.pop()
         | 
| 285 | 
            +
                w.push_key('a3')
         | 
| 286 | 
            +
                w.push_object()
         | 
| 287 | 
            +
                w.push_key('a4')
         | 
| 288 | 
            +
                w.push_value(37)
         | 
| 289 | 
            +
                w.pop()
         | 
| 290 | 
            +
                w.pop()
         | 
| 291 | 
            +
                assert_equal('{"a1":{},"a2":{"b":{}},"a3":{"a4":37}}', output.string())
         | 
| 292 | 
            +
              end
         | 
| 293 | 
            +
             | 
| 271 294 | 
             
            end # OjWriter
         | 
    
        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: 2.7. | 
| 4 | 
            +
              version: 2.7.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Peter Ohler
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-03- | 
| 11 | 
            +
            date: 2014-03-30 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: 'The fastest JSON parser and object serializer. '
         | 
| 14 14 | 
             
            email: peter@ohler.com
         |