bson_ext 1.0.4 → 1.0.5
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.
- data/Rakefile +33 -8
- data/bson_ext.gemspec +1 -1
- data/ext/cbson/cbson.c +13 -10
- data/ext/cbson/version.h +1 -1
- metadata +9 -4
    
        data/Rakefile
    CHANGED
    
    | @@ -58,23 +58,48 @@ namespace :test do | |
| 58 58 | 
             
                t.verbose    = true
         | 
| 59 59 | 
             
              end
         | 
| 60 60 |  | 
| 61 | 
            -
              Rake::TestTask.new(: | 
| 62 | 
            -
                t.test_files = FileList['test/ | 
| 61 | 
            +
              Rake::TestTask.new(:replica_pair_count) do |t|
         | 
| 62 | 
            +
                t.test_files = FileList['test/replica_pairs/count_test.rb']
         | 
| 63 63 | 
             
                t.verbose    = true
         | 
| 64 64 | 
             
              end
         | 
| 65 65 |  | 
| 66 | 
            -
              Rake::TestTask.new(: | 
| 67 | 
            -
                t.test_files = FileList['test/ | 
| 66 | 
            +
              Rake::TestTask.new(:replica_pair_insert) do |t|
         | 
| 67 | 
            +
                t.test_files = FileList['test/replica_pairs/insert_test.rb']
         | 
| 68 68 | 
             
                t.verbose    = true
         | 
| 69 69 | 
             
              end
         | 
| 70 70 |  | 
| 71 | 
            -
              Rake::TestTask.new(: | 
| 72 | 
            -
                t.test_files = FileList['test/ | 
| 71 | 
            +
              Rake::TestTask.new(:pooled_replica_pair_insert) do |t|
         | 
| 72 | 
            +
                t.test_files = FileList['test/replica_pairs/pooled_insert_test.rb']
         | 
| 73 73 | 
             
                t.verbose    = true
         | 
| 74 74 | 
             
              end
         | 
| 75 75 |  | 
| 76 | 
            -
              Rake::TestTask.new(: | 
| 77 | 
            -
                t.test_files = FileList['test/ | 
| 76 | 
            +
              Rake::TestTask.new(:replica_pair_query) do |t|
         | 
| 77 | 
            +
                t.test_files = FileList['test/replica_pairs/query_test.rb']
         | 
| 78 | 
            +
                t.verbose    = true
         | 
| 79 | 
            +
              end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
              Rake::TestTask.new(:replica_set_count) do |t|
         | 
| 82 | 
            +
                t.test_files = FileList['test/replica_sets/count_test.rb']
         | 
| 83 | 
            +
                t.verbose    = true
         | 
| 84 | 
            +
              end
         | 
| 85 | 
            +
             | 
| 86 | 
            +
              Rake::TestTask.new(:replica_set_insert) do |t|
         | 
| 87 | 
            +
                t.test_files = FileList['test/replica_sets/insert_test.rb']
         | 
| 88 | 
            +
                t.verbose    = true
         | 
| 89 | 
            +
              end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
              Rake::TestTask.new(:pooled_replica_set_insert) do |t|
         | 
| 92 | 
            +
                t.test_files = FileList['test/replica_sets/pooled_insert_test.rb']
         | 
| 93 | 
            +
                t.verbose    = true
         | 
| 94 | 
            +
              end
         | 
| 95 | 
            +
             | 
| 96 | 
            +
              Rake::TestTask.new(:replica_set_query) do |t|
         | 
| 97 | 
            +
                t.test_files = FileList['test/replica_sets/query_test.rb']
         | 
| 98 | 
            +
                t.verbose    = true
         | 
| 99 | 
            +
              end
         | 
| 100 | 
            +
             | 
| 101 | 
            +
              Rake::TestTask.new(:replica_set_ack) do |t|
         | 
| 102 | 
            +
                t.test_files = FileList['test/replica_sets/replication_ack_test.rb']
         | 
| 78 103 | 
             
                t.verbose    = true
         | 
| 79 104 | 
             
              end
         | 
| 80 105 |  | 
    
        data/bson_ext.gemspec
    CHANGED
    
    
    
        data/ext/cbson/cbson.c
    CHANGED
    
    | @@ -73,8 +73,8 @@ | |
| 73 73 | 
             
            #define MAX_HOSTNAME_LENGTH 256
         | 
| 74 74 |  | 
| 75 75 | 
             
            static VALUE Binary;
         | 
| 76 | 
            -
            static VALUE Time;
         | 
| 77 76 | 
             
            static VALUE ObjectID;
         | 
| 77 | 
            +
            static VALUE ObjectId;
         | 
| 78 78 | 
             
            static VALUE DBRef;
         | 
| 79 79 | 
             
            static VALUE Code;
         | 
| 80 80 | 
             
            static VALUE MinKey;
         | 
| @@ -379,7 +379,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) { | |
| 379 379 | 
             
                            SAFE_WRITE(buffer, RSTRING_PTR(string_data), length);
         | 
| 380 380 | 
             
                            break;
         | 
| 381 381 | 
             
                        }
         | 
| 382 | 
            -
                        if (strcmp(cls, "BSON::ObjectID") == 0) {
         | 
| 382 | 
            +
                        if ((strcmp(cls, "BSON::ObjectId") == 0) || (strcmp(cls, "BSON::ObjectID") == 0)) {
         | 
| 383 383 | 
             
                            VALUE as_array = rb_funcall(value, rb_intern("to_a"), 0);
         | 
| 384 384 | 
             
                            int i;
         | 
| 385 385 | 
             
                            write_name_and_type(buffer, key, 0x07);
         | 
| @@ -561,8 +561,12 @@ static void write_doc(buffer_t buffer, VALUE hash, VALUE check_keys, VALUE move_ | |
| 561 561 |  | 
| 562 562 | 
             
                        write_function(key, value, pack_extra(buffer, check_keys));
         | 
| 563 563 | 
             
                    }
         | 
| 564 | 
            -
                } else {
         | 
| 564 | 
            +
                } else if (strcmp(rb_obj_classname(hash), "Hash") == 0) {
         | 
| 565 565 | 
             
                    rb_hash_foreach(hash, write_function, pack_extra(buffer, check_keys));
         | 
| 566 | 
            +
                } else {
         | 
| 567 | 
            +
                    buffer_free(buffer);
         | 
| 568 | 
            +
                    char* cls = rb_obj_classname(hash);
         | 
| 569 | 
            +
                    rb_raise(InvalidDocument, "BSON.serialize takes a Hash but got a %s", cls);
         | 
| 566 570 | 
             
                }
         | 
| 567 571 |  | 
| 568 572 | 
             
                // write null byte and fill in length
         | 
| @@ -691,7 +695,7 @@ static VALUE get_value(const char* buffer, int* position, int type) { | |
| 691 695 | 
             
                    {
         | 
| 692 696 | 
             
                        VALUE str = rb_str_new(buffer + *position, 12);
         | 
| 693 697 | 
             
                        VALUE oid = rb_funcall(str, rb_intern("unpack"), 1, rb_str_new2("C*"));
         | 
| 694 | 
            -
                        value = rb_class_new_instance(1, &oid,  | 
| 698 | 
            +
                        value = rb_class_new_instance(1, &oid, ObjectId);
         | 
| 695 699 | 
             
                        *position += 12;
         | 
| 696 700 | 
             
                        break;
         | 
| 697 701 | 
             
                    }
         | 
| @@ -703,12 +707,9 @@ static VALUE get_value(const char* buffer, int* position, int type) { | |
| 703 707 | 
             
                case 9:
         | 
| 704 708 | 
             
                    {
         | 
| 705 709 | 
             
                        long long millis;
         | 
| 706 | 
            -
                        VALUE seconds, microseconds;
         | 
| 707 710 | 
             
                        memcpy(&millis, buffer + *position, 8);
         | 
| 708 | 
            -
                        seconds = LL2NUM(millis / 1000);
         | 
| 709 | 
            -
                        microseconds = INT2NUM((millis % 1000) * 1000);
         | 
| 710 711 |  | 
| 711 | 
            -
                        value =  | 
| 712 | 
            +
                        value = rb_time_new(millis / 1000, (millis % 1000) * 1000);
         | 
| 712 713 | 
             
                        value = rb_funcall(value, rb_intern("utc"), 0);
         | 
| 713 714 | 
             
                        *position += 8;
         | 
| 714 715 | 
             
                        break;
         | 
| @@ -756,7 +757,7 @@ static VALUE get_value(const char* buffer, int* position, int type) { | |
| 756 757 |  | 
| 757 758 | 
             
                        str = rb_str_new(buffer + *position, 12);
         | 
| 758 759 | 
             
                        oid = rb_funcall(str, rb_intern("unpack"), 1, rb_str_new2("C*"));
         | 
| 759 | 
            -
                        id = rb_class_new_instance(1, &oid,  | 
| 760 | 
            +
                        id = rb_class_new_instance(1, &oid, ObjectId);
         | 
| 760 761 | 
             
                        *position += 12;
         | 
| 761 762 |  | 
| 762 763 | 
             
                        argv[0] = collection;
         | 
| @@ -909,13 +910,14 @@ static VALUE objectid_generate(VALUE self) | |
| 909 910 |  | 
| 910 911 | 
             
            void Init_cbson() {
         | 
| 911 912 | 
             
                VALUE bson, CBson, Digest, ext_version;
         | 
| 912 | 
            -
                Time = rb_const_get(rb_cObject, rb_intern("Time"));
         | 
| 913 913 |  | 
| 914 914 | 
             
                bson = rb_const_get(rb_cObject, rb_intern("BSON"));
         | 
| 915 915 | 
             
                rb_require("bson/types/binary");
         | 
| 916 916 | 
             
                Binary = rb_const_get(bson, rb_intern("Binary"));
         | 
| 917 917 | 
             
                rb_require("bson/types/objectid");
         | 
| 918 918 | 
             
                ObjectID = rb_const_get(bson, rb_intern("ObjectID"));
         | 
| 919 | 
            +
                rb_require("bson/types/object_id");
         | 
| 920 | 
            +
                ObjectId = rb_const_get(bson, rb_intern("ObjectId"));
         | 
| 919 921 | 
             
                rb_require("bson/types/dbref");
         | 
| 920 922 | 
             
                DBRef = rb_const_get(bson, rb_intern("DBRef"));
         | 
| 921 923 | 
             
                rb_require("bson/types/code");
         | 
| @@ -942,6 +944,7 @@ void Init_cbson() { | |
| 942 944 | 
             
                DigestMD5 = rb_const_get(Digest, rb_intern("MD5"));
         | 
| 943 945 |  | 
| 944 946 | 
             
                rb_define_method(ObjectID, "generate", objectid_generate, 0);
         | 
| 947 | 
            +
                rb_define_method(ObjectId, "generate", objectid_generate, 0);
         | 
| 945 948 |  | 
| 946 949 | 
             
                rb_define_method(rb_cArray, "fast_pack", fast_pack, 0);
         | 
| 947 950 | 
             
            }
         | 
    
        data/ext/cbson/version.h
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,12 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: bson_ext
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            +
              hash: 29
         | 
| 4 5 | 
             
              prerelease: false
         | 
| 5 6 | 
             
              segments: 
         | 
| 6 7 | 
             
              - 1
         | 
| 7 8 | 
             
              - 0
         | 
| 8 | 
            -
              -  | 
| 9 | 
            -
              version: 1.0. | 
| 9 | 
            +
              - 5
         | 
| 10 | 
            +
              version: 1.0.5
         | 
| 10 11 | 
             
            platform: ruby
         | 
| 11 12 | 
             
            authors: 
         | 
| 12 13 | 
             
            - Mike Dirolf
         | 
| @@ -14,7 +15,7 @@ autorequire: | |
| 14 15 | 
             
            bindir: bin
         | 
| 15 16 | 
             
            cert_chain: []
         | 
| 16 17 |  | 
| 17 | 
            -
            date: 2010- | 
| 18 | 
            +
            date: 2010-08-27 00:00:00 -04:00
         | 
| 18 19 | 
             
            default_executable: 
         | 
| 19 20 | 
             
            dependencies: []
         | 
| 20 21 |  | 
| @@ -47,23 +48,27 @@ rdoc_options: [] | |
| 47 48 | 
             
            require_paths: 
         | 
| 48 49 | 
             
            - ext
         | 
| 49 50 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 51 | 
            +
              none: false
         | 
| 50 52 | 
             
              requirements: 
         | 
| 51 53 | 
             
              - - ">="
         | 
| 52 54 | 
             
                - !ruby/object:Gem::Version 
         | 
| 55 | 
            +
                  hash: 3
         | 
| 53 56 | 
             
                  segments: 
         | 
| 54 57 | 
             
                  - 0
         | 
| 55 58 | 
             
                  version: "0"
         | 
| 56 59 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 60 | 
            +
              none: false
         | 
| 57 61 | 
             
              requirements: 
         | 
| 58 62 | 
             
              - - ">="
         | 
| 59 63 | 
             
                - !ruby/object:Gem::Version 
         | 
| 64 | 
            +
                  hash: 3
         | 
| 60 65 | 
             
                  segments: 
         | 
| 61 66 | 
             
                  - 0
         | 
| 62 67 | 
             
                  version: "0"
         | 
| 63 68 | 
             
            requirements: []
         | 
| 64 69 |  | 
| 65 70 | 
             
            rubyforge_project: 
         | 
| 66 | 
            -
            rubygems_version: 1.3. | 
| 71 | 
            +
            rubygems_version: 1.3.7
         | 
| 67 72 | 
             
            signing_key: 
         | 
| 68 73 | 
             
            specification_version: 3
         | 
| 69 74 | 
             
            summary: C extensions for Ruby BSON.
         |