bson_ext 1.9.2 → 1.10.0.rc0
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/LICENSE +1 -1
- data/VERSION +1 -1
- data/ext/cbson/bson_buffer.c +1 -1
- data/ext/cbson/bson_buffer.h +1 -1
- data/ext/cbson/cbson.c +130 -66
- data/ext/cbson/encoding_helpers.c +1 -1
- data/ext/cbson/encoding_helpers.h +1 -1
- data/ext/cbson/version.h +2 -2
- metadata +30 -29
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 940e8d1b2870656eb41408f31af76a4fa6ed11f1
|
4
|
+
data.tar.gz: 2a9a132be6fc1aa2f7c77fa96d875239687cc618
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ccbe4e1e6facd55dfb64a4ae55efba46844d8619a957bc7558a82ad4b5bd4d5e5551cd60c31093d9cf34eb7caa64c1b6d6a879f9ec5bfc899b1e12eae23b667
|
7
|
+
data.tar.gz: d911ae505fc6ace187afa9cf9cb1830d001961193c896d66248a9b28e84d929de751d65da2fa4c9be2461044131586b5ee6139b957abdf13d95db2e2374ff8ae
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/LICENSE
CHANGED
@@ -175,7 +175,7 @@
|
|
175
175
|
|
176
176
|
END OF TERMS AND CONDITIONS
|
177
177
|
|
178
|
-
Copyright (C) 2008-2013
|
178
|
+
Copyright (C) 2008-2013 MongoDB, Inc.
|
179
179
|
|
180
180
|
Licensed under the Apache License, Version 2.0 (the "License");
|
181
181
|
you may not use this file except in compliance with the License.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.10.0.rc0
|
data/ext/cbson/bson_buffer.c
CHANGED
data/ext/cbson/bson_buffer.h
CHANGED
data/ext/cbson/cbson.c
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
* Copyright (C) 2013
|
2
|
+
* Copyright (C) 2009-2013 MongoDB, Inc.
|
3
3
|
*
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
5
|
* you may not use this file except in compliance with the License.
|
@@ -89,6 +89,13 @@ static VALUE MinKey;
|
|
89
89
|
static VALUE MaxKey;
|
90
90
|
static VALUE Timestamp;
|
91
91
|
static VALUE Regexp;
|
92
|
+
static VALUE BSONRegex;
|
93
|
+
static VALUE BSONRegex_IGNORECASE;
|
94
|
+
static VALUE BSONRegex_EXTENDED;
|
95
|
+
static VALUE BSONRegex_MULTILINE;
|
96
|
+
static VALUE BSONRegex_DOTALL;
|
97
|
+
static VALUE BSONRegex_LOCALE_DEPENDENT;
|
98
|
+
static VALUE BSONRegex_UNICODE;
|
92
99
|
static VALUE OrderedHash;
|
93
100
|
static VALUE InvalidKeyName;
|
94
101
|
static VALUE InvalidStringEncoding;
|
@@ -99,6 +106,10 @@ static VALUE RB_HASH;
|
|
99
106
|
|
100
107
|
static int max_bson_size;
|
101
108
|
|
109
|
+
struct deserialize_opts {
|
110
|
+
int compile_regex;
|
111
|
+
};
|
112
|
+
|
102
113
|
#if HAVE_RUBY_ENCODING_H
|
103
114
|
#include "ruby/encoding.h"
|
104
115
|
#define STR_NEW(p,n) \
|
@@ -195,7 +206,7 @@ static int cmp_char(const void* a, const void* b) {
|
|
195
206
|
static void write_doc(bson_buffer_t buffer, VALUE hash, VALUE check_keys, VALUE move_id);
|
196
207
|
static int write_element_with_id(VALUE key, VALUE value, VALUE extra);
|
197
208
|
static int write_element_without_id(VALUE key, VALUE value, VALUE extra);
|
198
|
-
static VALUE elements_to_hash(const char* buffer, int max);
|
209
|
+
static VALUE elements_to_hash(const char* buffer, int max, struct deserialize_opts * opts);
|
199
210
|
|
200
211
|
static VALUE pack_extra(bson_buffer_t buffer, VALUE check_keys) {
|
201
212
|
return rb_ary_new3(2, LL2NUM((long long)buffer), check_keys);
|
@@ -207,6 +218,79 @@ static void write_name_and_type(bson_buffer_t buffer, VALUE name, char type) {
|
|
207
218
|
SAFE_WRITE(buffer, &zero, 1);
|
208
219
|
}
|
209
220
|
|
221
|
+
static void serialize_regex(bson_buffer_t buffer, VALUE key, VALUE pattern, long flags, VALUE value, int native) {
|
222
|
+
|
223
|
+
VALUE has_extra;
|
224
|
+
|
225
|
+
write_name_and_type(buffer, key, 0x0B);
|
226
|
+
|
227
|
+
write_utf8(buffer, pattern, 0);
|
228
|
+
SAFE_WRITE(buffer, &zero, 1);
|
229
|
+
|
230
|
+
if (native == 1) {
|
231
|
+
// Ruby regular expressions always use multiline mode
|
232
|
+
char multiline = 'm';
|
233
|
+
SAFE_WRITE(buffer, &multiline, 1);
|
234
|
+
|
235
|
+
if (flags & IGNORECASE) {
|
236
|
+
char ignorecase = 'i';
|
237
|
+
SAFE_WRITE(buffer, &ignorecase, 1);
|
238
|
+
}
|
239
|
+
|
240
|
+
// dotall on the server is multiline in Ruby
|
241
|
+
if (flags & MULTILINE) {
|
242
|
+
char dotall = 's';
|
243
|
+
SAFE_WRITE(buffer, &dotall, 1);
|
244
|
+
}
|
245
|
+
|
246
|
+
if (flags & EXTENDED) {
|
247
|
+
char extended = 'x';
|
248
|
+
SAFE_WRITE(buffer, &extended, 1);
|
249
|
+
}
|
250
|
+
}
|
251
|
+
else {
|
252
|
+
if (flags & BSONRegex_IGNORECASE) {
|
253
|
+
char ignorecase = 'i';
|
254
|
+
SAFE_WRITE(buffer, &ignorecase, 1);
|
255
|
+
}
|
256
|
+
|
257
|
+
if (flags & BSONRegex_LOCALE_DEPENDENT) {
|
258
|
+
char locale_dependent = 'l';
|
259
|
+
SAFE_WRITE(buffer, &locale_dependent, 1);
|
260
|
+
}
|
261
|
+
|
262
|
+
if (flags & BSONRegex_MULTILINE) {
|
263
|
+
char multiline = 'm';
|
264
|
+
SAFE_WRITE(buffer, &multiline, 1);
|
265
|
+
}
|
266
|
+
|
267
|
+
if (flags & BSONRegex_DOTALL) {
|
268
|
+
char dotall = 's';
|
269
|
+
SAFE_WRITE(buffer, &dotall, 1);
|
270
|
+
}
|
271
|
+
|
272
|
+
if (flags & BSONRegex_UNICODE) {
|
273
|
+
char unicode = 'u';
|
274
|
+
SAFE_WRITE(buffer, &unicode, 1);
|
275
|
+
}
|
276
|
+
|
277
|
+
if (flags & BSONRegex_EXTENDED) {
|
278
|
+
char extended = 'x';
|
279
|
+
SAFE_WRITE(buffer, &extended, 1);
|
280
|
+
}
|
281
|
+
}
|
282
|
+
|
283
|
+
has_extra = rb_funcall(value, rb_intern("respond_to?"), 1, rb_str_new2("extra_options_str"));
|
284
|
+
if (TYPE(has_extra) == T_TRUE) {
|
285
|
+
VALUE extra = rb_funcall(value, rb_intern("extra_options_str"), 0);
|
286
|
+
bson_buffer_position old_position = bson_buffer_get_position(buffer);
|
287
|
+
SAFE_WRITE(buffer, RSTRING_PTR(extra), RSTRING_LENINT(extra));
|
288
|
+
qsort(bson_buffer_get_buffer(buffer) + old_position, RSTRING_LEN(extra), sizeof(char), cmp_char);
|
289
|
+
}
|
290
|
+
SAFE_WRITE(buffer, &zero, 1);
|
291
|
+
|
292
|
+
}
|
293
|
+
|
210
294
|
static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
|
211
295
|
bson_buffer_t buffer = (bson_buffer_t)NUM2LL(rb_ary_entry(extra, 0));
|
212
296
|
VALUE check_keys = rb_ary_entry(extra, 1);
|
@@ -468,6 +552,11 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
|
|
468
552
|
SAFE_WRITE(buffer, &zero, 1);
|
469
553
|
break;
|
470
554
|
}
|
555
|
+
if (strcmp(cls, "BSON::Regex") == 0) {
|
556
|
+
serialize_regex(buffer, key, rb_funcall(value, rb_intern("pattern"), 0),
|
557
|
+
FIX2INT(rb_funcall(value, rb_intern("options"), 0)), value, 0);
|
558
|
+
break;
|
559
|
+
}
|
471
560
|
bson_buffer_free(buffer);
|
472
561
|
rb_raise(InvalidDocument, "Cannot serialize an object of class %s into BSON.", cls);
|
473
562
|
break;
|
@@ -501,37 +590,7 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
|
|
501
590
|
{
|
502
591
|
VALUE pattern = RREGEXP_SRC(value);
|
503
592
|
long flags = RREGEXP_OPTIONS(value);
|
504
|
-
|
505
|
-
|
506
|
-
write_name_and_type(buffer, key, 0x0B);
|
507
|
-
|
508
|
-
write_utf8(buffer, pattern, 0);
|
509
|
-
SAFE_WRITE(buffer, &zero, 1);
|
510
|
-
|
511
|
-
if (flags & IGNORECASE) {
|
512
|
-
char ignorecase = 'i';
|
513
|
-
SAFE_WRITE(buffer, &ignorecase, 1);
|
514
|
-
}
|
515
|
-
if (flags & MULTILINE) {
|
516
|
-
char multiline = 'm';
|
517
|
-
char dotall = 's';
|
518
|
-
SAFE_WRITE(buffer, &multiline, 1);
|
519
|
-
SAFE_WRITE(buffer, &dotall, 1);
|
520
|
-
}
|
521
|
-
if (flags & EXTENDED) {
|
522
|
-
char extended = 'x';
|
523
|
-
SAFE_WRITE(buffer, &extended, 1);
|
524
|
-
}
|
525
|
-
|
526
|
-
has_extra = rb_funcall(value, rb_intern("respond_to?"), 1, rb_str_new2("extra_options_str"));
|
527
|
-
if (TYPE(has_extra) == T_TRUE) {
|
528
|
-
VALUE extra = rb_funcall(value, rb_intern("extra_options_str"), 0);
|
529
|
-
bson_buffer_position old_position = bson_buffer_get_position(buffer);
|
530
|
-
SAFE_WRITE(buffer, RSTRING_PTR(extra), RSTRING_LENINT(extra));
|
531
|
-
qsort(bson_buffer_get_buffer(buffer) + old_position, RSTRING_LEN(extra), sizeof(char), cmp_char);
|
532
|
-
}
|
533
|
-
SAFE_WRITE(buffer, &zero, 1);
|
534
|
-
|
593
|
+
serialize_regex(buffer, key, pattern, flags, value, 1);
|
535
594
|
break;
|
536
595
|
}
|
537
596
|
default:
|
@@ -648,10 +707,11 @@ static VALUE method_serialize(VALUE self, VALUE doc, VALUE check_keys,
|
|
648
707
|
return result;
|
649
708
|
}
|
650
709
|
|
651
|
-
static VALUE get_value(const char* buffer, int* position,
|
710
|
+
static VALUE get_value(const char* buffer, int* position,
|
711
|
+
unsigned char type, struct deserialize_opts * opts) {
|
652
712
|
VALUE value;
|
653
713
|
switch (type) {
|
654
|
-
case
|
714
|
+
case 255:
|
655
715
|
{
|
656
716
|
value = rb_class_new_instance(0, NULL, MinKey);
|
657
717
|
break;
|
@@ -682,17 +742,17 @@ static VALUE get_value(const char* buffer, int* position, int type) {
|
|
682
742
|
int offset = *position + 10;
|
683
743
|
VALUE argv[2];
|
684
744
|
int collection_length = *(int*)(buffer + offset) - 1;
|
685
|
-
char id_type;
|
745
|
+
unsigned char id_type;
|
686
746
|
offset += 4;
|
687
747
|
|
688
748
|
argv[0] = STR_NEW(buffer + offset, collection_length);
|
689
749
|
offset += collection_length + 1;
|
690
|
-
id_type = buffer[offset];
|
750
|
+
id_type = (unsigned char)buffer[offset];
|
691
751
|
offset += 5;
|
692
|
-
argv[1] = get_value(buffer, &offset,
|
752
|
+
argv[1] = get_value(buffer, &offset, id_type, opts);
|
693
753
|
value = rb_class_new_instance(2, argv, DBRef);
|
694
754
|
} else {
|
695
|
-
value = elements_to_hash(buffer + *position + 4, size - 5);
|
755
|
+
value = elements_to_hash(buffer + *position + 4, size - 5, opts);
|
696
756
|
}
|
697
757
|
*position += size;
|
698
758
|
break;
|
@@ -706,12 +766,12 @@ static VALUE get_value(const char* buffer, int* position, int type) {
|
|
706
766
|
|
707
767
|
value = rb_ary_new();
|
708
768
|
while (*position < end) {
|
709
|
-
|
769
|
+
unsigned char type = (unsigned char)buffer[(*position)++];
|
710
770
|
int key_size = (int)strlen(buffer + *position);
|
711
771
|
VALUE to_append;
|
712
772
|
|
713
773
|
*position += key_size + 1; // just skip the key, they're in order.
|
714
|
-
to_append = get_value(buffer, position, type);
|
774
|
+
to_append = get_value(buffer, position, type, opts);
|
715
775
|
rb_ary_push(value, to_append);
|
716
776
|
}
|
717
777
|
(*position)++;
|
@@ -786,29 +846,19 @@ static VALUE get_value(const char* buffer, int* position, int type) {
|
|
786
846
|
{
|
787
847
|
int pattern_length = (int)strlen(buffer + *position);
|
788
848
|
VALUE pattern = STR_NEW(buffer + *position, pattern_length);
|
789
|
-
int flags_length
|
849
|
+
int flags_length;
|
790
850
|
VALUE argv[3];
|
791
851
|
*position += pattern_length + 1;
|
792
852
|
|
793
853
|
flags_length = (int)strlen(buffer + *position);
|
794
|
-
|
795
|
-
char flag = buffer[*position + i];
|
796
|
-
if (flag == 'i') {
|
797
|
-
flags |= IGNORECASE;
|
798
|
-
}
|
799
|
-
else if (flag == 'm') {
|
800
|
-
flags |= MULTILINE;
|
801
|
-
}
|
802
|
-
else if (flag == 's') {
|
803
|
-
flags |= MULTILINE;
|
804
|
-
}
|
805
|
-
else if (flag == 'x') {
|
806
|
-
flags |= EXTENDED;
|
807
|
-
}
|
808
|
-
}
|
854
|
+
VALUE flags_str = STR_NEW(buffer + *position, flags_length);
|
809
855
|
argv[0] = pattern;
|
810
|
-
argv[1] =
|
811
|
-
value = rb_class_new_instance(2, argv,
|
856
|
+
argv[1] = flags_str;
|
857
|
+
value = rb_class_new_instance(2, argv, BSONRegex);
|
858
|
+
|
859
|
+
if (opts->compile_regex == 1) {
|
860
|
+
value = rb_funcall(value, rb_intern("try_compile"), 0);
|
861
|
+
}
|
812
862
|
*position += flags_length + 1;
|
813
863
|
break;
|
814
864
|
}
|
@@ -850,7 +900,7 @@ static VALUE get_value(const char* buffer, int* position, int type) {
|
|
850
900
|
*position += code_length + 1;
|
851
901
|
|
852
902
|
memcpy(&scope_size, buffer + *position, 4);
|
853
|
-
scope = elements_to_hash(buffer + *position + 4, scope_size - 5);
|
903
|
+
scope = elements_to_hash(buffer + *position + 4, scope_size - 5, opts);
|
854
904
|
*position += scope_size;
|
855
905
|
|
856
906
|
argv[0] = code;
|
@@ -900,30 +950,36 @@ static VALUE get_value(const char* buffer, int* position, int type) {
|
|
900
950
|
return value;
|
901
951
|
}
|
902
952
|
|
903
|
-
static VALUE elements_to_hash(const char* buffer, int max) {
|
953
|
+
static VALUE elements_to_hash(const char* buffer, int max, struct deserialize_opts * opts) {
|
904
954
|
VALUE hash = rb_class_new_instance(0, NULL, OrderedHash);
|
905
955
|
int position = 0;
|
906
956
|
while (position < max) {
|
907
|
-
|
957
|
+
unsigned char type = (unsigned char)buffer[position++];
|
908
958
|
int name_length = (int)strlen(buffer + position);
|
909
959
|
VALUE name = STR_NEW(buffer + position, name_length);
|
910
960
|
VALUE value;
|
911
961
|
position += name_length + 1;
|
912
|
-
value = get_value(buffer, &position, type);
|
962
|
+
value = get_value(buffer, &position, type, opts);
|
913
963
|
rb_funcall(hash, element_assignment_method, 2, name, value);
|
914
964
|
}
|
915
965
|
return hash;
|
916
966
|
}
|
917
967
|
|
918
|
-
static VALUE method_deserialize(VALUE self, VALUE bson) {
|
968
|
+
static VALUE method_deserialize(VALUE self, VALUE bson, VALUE opts) {
|
919
969
|
const char* buffer = RSTRING_PTR(bson);
|
920
970
|
int remaining = RSTRING_LENINT(bson);
|
971
|
+
struct deserialize_opts deserialize_opts;
|
972
|
+
deserialize_opts.compile_regex = 1;
|
973
|
+
if (rb_funcall(opts, rb_intern("has_key?"), 1, ID2SYM(rb_intern("compile_regex"))) == Qtrue &&
|
974
|
+
rb_hash_aref(opts, ID2SYM(rb_intern("compile_regex"))) == Qfalse) {
|
975
|
+
deserialize_opts.compile_regex = 0;
|
976
|
+
}
|
921
977
|
|
922
978
|
// NOTE we just swallow the size and end byte here
|
923
979
|
buffer += 4;
|
924
980
|
remaining -= 5;
|
925
981
|
|
926
|
-
return elements_to_hash(buffer, remaining);
|
982
|
+
return elements_to_hash(buffer, remaining, &deserialize_opts);
|
927
983
|
}
|
928
984
|
|
929
985
|
static int legal_objectid_str(VALUE str) {
|
@@ -1084,6 +1140,14 @@ void Init_cbson() {
|
|
1084
1140
|
MaxKey = rb_const_get(bson, rb_intern("MaxKey"));
|
1085
1141
|
rb_require("bson/types/timestamp");
|
1086
1142
|
Timestamp = rb_const_get(bson, rb_intern("Timestamp"));
|
1143
|
+
rb_require("bson/types/regex");
|
1144
|
+
BSONRegex = rb_const_get(bson, rb_intern("Regex"));
|
1145
|
+
BSONRegex_IGNORECASE = rb_const_get(BSONRegex, rb_intern("IGNORECASE"));
|
1146
|
+
BSONRegex_EXTENDED = rb_const_get(BSONRegex, rb_intern("EXTENDED"));
|
1147
|
+
BSONRegex_MULTILINE = rb_const_get(BSONRegex, rb_intern("MULTILINE"));
|
1148
|
+
BSONRegex_DOTALL = rb_const_get(BSONRegex, rb_intern("DOTALL"));
|
1149
|
+
BSONRegex_LOCALE_DEPENDENT = rb_const_get(BSONRegex, rb_intern("LOCALE_DEPENDENT"));
|
1150
|
+
BSONRegex_UNICODE = rb_const_get(BSONRegex, rb_intern("UNICODE"));
|
1087
1151
|
Regexp = rb_const_get(rb_cObject, rb_intern("Regexp"));
|
1088
1152
|
rb_require("bson/exceptions");
|
1089
1153
|
InvalidKeyName = rb_const_get(bson, rb_intern("InvalidKeyName"));
|
@@ -1098,7 +1162,7 @@ void Init_cbson() {
|
|
1098
1162
|
ext_version = rb_str_new2(VERSION);
|
1099
1163
|
rb_define_const(CBson, "VERSION", ext_version);
|
1100
1164
|
rb_define_module_function(CBson, "serialize", method_serialize, 4);
|
1101
|
-
rb_define_module_function(CBson, "deserialize", method_deserialize,
|
1165
|
+
rb_define_module_function(CBson, "deserialize", method_deserialize, 2);
|
1102
1166
|
rb_define_module_function(CBson, "max_bson_size", method_max_bson_size, 0);
|
1103
1167
|
rb_define_module_function(CBson, "update_max_bson_size", method_update_max_bson_size, 1);
|
1104
1168
|
|
data/ext/cbson/version.h
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
* Copyright (C) 2013
|
2
|
+
* Copyright (C) 2009-2013 MongoDB, Inc.
|
3
3
|
*
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
5
|
* you may not use this file except in compliance with the License.
|
@@ -14,4 +14,4 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
#define VERSION "1.
|
17
|
+
#define VERSION "1.10.0.rc0"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bson_ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0.rc0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Brock
|
@@ -14,41 +14,42 @@ bindir: bin
|
|
14
14
|
cert_chain:
|
15
15
|
- |
|
16
16
|
-----BEGIN CERTIFICATE-----
|
17
|
-
|
17
|
+
MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQUFADBCMRQwEgYDVQQDDAtkcml2
|
18
18
|
ZXItcnVieTEVMBMGCgmSJomT8ixkARkWBTEwZ2VuMRMwEQYKCZImiZPyLGQBGRYD
|
19
|
-
|
19
|
+
Y29tMB4XDTE0MDIxODIyMDQwMVoXDTE1MDIxODIyMDQwMVowQjEUMBIGA1UEAwwL
|
20
20
|
ZHJpdmVyLXJ1YnkxFTATBgoJkiaJk/IsZAEZFgUxMGdlbjETMBEGCgmSJomT8ixk
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
21
|
+
ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdoZILE3alL
|
22
|
+
V5OGgh2hkgVTd79nRV3akueIZgu9qXhNHixXsyxBnaSPbrK7s1bWurgVT/Klp//3
|
23
|
+
ASnU78R5ChmCX5/xMRp+E9FO69nCt33njUKyYU0+SwiEID02At+bUb3iS7S5CIMO
|
24
|
+
tLSybh/DhH9Hi5g+FqwpRQy/RQcTJ6Uz/75+Ng2J0oz6eVvXAuEz75apE3qJcLb3
|
25
|
+
w699mm0e4qqpfHcSkgJbOGpmbrb+XimNy+AXdagkKYk2tUjYiCwkLop0hf/XBEWu
|
26
|
+
ap8vwBNdAn+ox1eNQUSdowBf4dJvIJWepRjqeFRcLPUrF5JES7qyHbnyi7nqtaCS
|
27
|
+
GwLBeSsgxdECAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
|
28
|
+
BBYEFEfmGN56RK0OIRqm4XYACgI7AXbsMCAGA1UdEQQZMBeBFWRyaXZlci1ydWJ5
|
29
|
+
QDEwZ2VuLmNvbTAgBgNVHRIEGTAXgRVkcml2ZXItcnVieUAxMGdlbi5jb20wDQYJ
|
30
|
+
KoZIhvcNAQEFBQADggEBAFcxu5xBsPg6szjBrkej2P+Qa9LK22rdIZtECnK8TLsQ
|
31
|
+
tmNdYMraNgiYf96U1zZKvjgzI04BRYmIeCnIDdg2MkpOZO35d/v/Hu0N9tiu08NX
|
32
|
+
aSSw+yzt43hIzEtYgs0WlSxXqnmu0ClA37t+mA0OTzp64pkQSiJfYlMbsCpElk4r
|
33
|
+
vJ5hsT7hMiPKABow5+pXckFwznEuciyBCx3ox9MnEic8qsjdiZgleeAJKDpKb+uX
|
34
|
+
ZLLlRFg7YfmA+N2giYd0oQz670xnBy5ZOvtXZe1wLLfGyeDwXeTrQGUE3oBRpr/t
|
35
|
+
eokvmuSJOtUOXE7dArS2jfgXfYsg1YZt4HttbJ9Z4ZM=
|
35
36
|
-----END CERTIFICATE-----
|
36
|
-
date:
|
37
|
+
date: 2014-02-18 00:00:00.000000000 Z
|
37
38
|
dependencies:
|
38
39
|
- !ruby/object:Gem::Dependency
|
39
40
|
name: bson
|
40
41
|
requirement: !ruby/object:Gem::Requirement
|
41
42
|
requirements:
|
42
|
-
- - ~>
|
43
|
+
- - "~>"
|
43
44
|
- !ruby/object:Gem::Version
|
44
|
-
version: 1.
|
45
|
+
version: 1.10.0.rc0
|
45
46
|
type: :runtime
|
46
47
|
prerelease: false
|
47
48
|
version_requirements: !ruby/object:Gem::Requirement
|
48
49
|
requirements:
|
49
|
-
- - ~>
|
50
|
+
- - "~>"
|
50
51
|
- !ruby/object:Gem::Version
|
51
|
-
version: 1.
|
52
|
+
version: 1.10.0.rc0
|
52
53
|
description: C extensions to accelerate the Ruby BSON serialization. For more information
|
53
54
|
about BSON, see http://bsonspec.org. For information about MongoDB, see http://www.mongodb.org.
|
54
55
|
email: mongodb-dev@googlegroups.com
|
@@ -57,15 +58,15 @@ extensions:
|
|
57
58
|
- ext/cbson/extconf.rb
|
58
59
|
extra_rdoc_files: []
|
59
60
|
files:
|
60
|
-
- bson_ext.gemspec
|
61
61
|
- LICENSE
|
62
62
|
- VERSION
|
63
|
-
-
|
63
|
+
- bson_ext.gemspec
|
64
64
|
- ext/cbson/bson_buffer.c
|
65
|
+
- ext/cbson/bson_buffer.h
|
65
66
|
- ext/cbson/cbson.c
|
66
67
|
- ext/cbson/encoding_helpers.c
|
67
|
-
- ext/cbson/bson_buffer.h
|
68
68
|
- ext/cbson/encoding_helpers.h
|
69
|
+
- ext/cbson/extconf.rb
|
69
70
|
- ext/cbson/version.h
|
70
71
|
homepage: http://www.mongodb.org
|
71
72
|
licenses:
|
@@ -77,17 +78,17 @@ require_paths:
|
|
77
78
|
- ext/bson_ext
|
78
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
80
|
-
- -
|
81
|
+
- - ">="
|
81
82
|
- !ruby/object:Gem::Version
|
82
83
|
version: '0'
|
83
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
85
|
requirements:
|
85
|
-
- -
|
86
|
+
- - ">"
|
86
87
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
88
|
+
version: 1.3.1
|
88
89
|
requirements: []
|
89
90
|
rubyforge_project: bson_ext
|
90
|
-
rubygems_version: 2.
|
91
|
+
rubygems_version: 2.2.1
|
91
92
|
signing_key:
|
92
93
|
specification_version: 4
|
93
94
|
summary: C extensions for Ruby BSON.
|
metadata.gz.sig
CHANGED
Binary file
|