google-protobuf 3.2.1.pre-x64-mingw32 → 3.3.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of google-protobuf might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3deda42c71c09bb0e577fb7e04d66de9f74e794c
4
- data.tar.gz: b337db3bce7bbca2d766a4a002b3cc9dabe3e27f
3
+ metadata.gz: 8d9deac82fd025ba13100cc96e939d9ee2c057ac
4
+ data.tar.gz: be6f123c0353aea8e1dd19639ed800243b686abe
5
5
  SHA512:
6
- metadata.gz: 1d7fcda496b5343b3f960427c6757857129da813c168425f9aff098ce5fed55ed21ca0d514924d23926e6c1fc971e8158e54144a550cd113feacff62c1e88c1e
7
- data.tar.gz: 8c4c37271d1c1e7b2c78425a86fe1d8d87ce7892f608b2fcd26086b9ff41357983b31b42bdb2ff4a157ce7ff50b57dc1e81a232943d139db2d9c5387d047c441
6
+ metadata.gz: bcc8d90147abc4ca5ca70c49b11adabd74144ebf3c89d4036aec275ed9299e96c47fa06740f9c925645f9eaa2b18bee9176f26f509cb20193622964cd3080b3e
7
+ data.tar.gz: 1362054d100346ee0e82346a1aaec7a0ae94a747a2213b052b7eb0b422eb5ca14ad5871269dc1f397cada461d239839f7b693dd8fa3bc12a034c40b46b8dccd7
@@ -652,6 +652,35 @@ VALUE Map_hash(VALUE _self) {
652
652
  return INT2FIX(h);
653
653
  }
654
654
 
655
+ /*
656
+ * call-seq:
657
+ * Map.to_h => {}
658
+ *
659
+ * Returns a Ruby Hash object containing all the values within the map
660
+ */
661
+ VALUE Map_to_h(VALUE _self) {
662
+ Map* self = ruby_to_Map(_self);
663
+ VALUE hash = rb_hash_new();
664
+ upb_strtable_iter it;
665
+ for (upb_strtable_begin(&it, &self->table);
666
+ !upb_strtable_done(&it);
667
+ upb_strtable_next(&it)) {
668
+ VALUE key = table_key_to_ruby(
669
+ self, upb_strtable_iter_key(&it), upb_strtable_iter_keylength(&it));
670
+ upb_value v = upb_strtable_iter_value(&it);
671
+ void* mem = value_memory(&v);
672
+ VALUE value = native_slot_get(self->value_type,
673
+ self->value_type_class,
674
+ mem);
675
+
676
+ if (self->value_type == UPB_TYPE_MESSAGE) {
677
+ value = Message_to_h(value);
678
+ }
679
+ rb_hash_aset(hash, key, value);
680
+ }
681
+ return hash;
682
+ }
683
+
655
684
  /*
656
685
  * call-seq:
657
686
  * Map.inspect => string
@@ -804,6 +833,8 @@ void Map_register(VALUE module) {
804
833
  rb_define_method(klass, "dup", Map_dup, 0);
805
834
  rb_define_method(klass, "==", Map_eq, 1);
806
835
  rb_define_method(klass, "hash", Map_hash, 0);
836
+ rb_define_method(klass, "to_hash", Map_to_h, 0);
837
+ rb_define_method(klass, "to_h", Map_to_h, 0);
807
838
  rb_define_method(klass, "inspect", Map_inspect, 0);
808
839
  rb_define_method(klass, "merge", Map_merge, 1);
809
840
  rb_include_module(klass, rb_mEnumerable);
@@ -394,7 +394,12 @@ VALUE Message_inspect(VALUE _self) {
394
394
  return str;
395
395
  }
396
396
 
397
-
397
+ /*
398
+ * call-seq:
399
+ * Message.to_h => {}
400
+ *
401
+ * Returns the message as a Ruby Hash object, with keys as symbols.
402
+ */
398
403
  VALUE Message_to_h(VALUE _self) {
399
404
  MessageHeader* self;
400
405
  VALUE hash;
@@ -410,8 +415,13 @@ VALUE Message_to_h(VALUE _self) {
410
415
  VALUE msg_value = layout_get(self->descriptor->layout, Message_data(self),
411
416
  field);
412
417
  VALUE msg_key = ID2SYM(rb_intern(upb_fielddef_name(field)));
413
- if (upb_fielddef_label(field) == UPB_LABEL_REPEATED) {
418
+ if (upb_fielddef_ismap(field)) {
419
+ msg_value = Map_to_h(msg_value);
420
+ } else if (upb_fielddef_label(field) == UPB_LABEL_REPEATED) {
414
421
  msg_value = RepeatedField_to_ary(msg_value);
422
+ } else if (msg_value != Qnil &&
423
+ upb_fielddef_type(field) == UPB_TYPE_MESSAGE) {
424
+ msg_value = Message_to_h(msg_value);
415
425
  }
416
426
  rb_hash_aset(hash, msg_key, msg_value);
417
427
  }
@@ -424,6 +424,7 @@ VALUE Map_dup(VALUE _self);
424
424
  VALUE Map_deep_copy(VALUE _self);
425
425
  VALUE Map_eq(VALUE _self, VALUE _other);
426
426
  VALUE Map_hash(VALUE _self);
427
+ VALUE Map_to_h(VALUE _self);
427
428
  VALUE Map_inspect(VALUE _self);
428
429
  VALUE Map_merge(VALUE _self, VALUE hashmap);
429
430
  VALUE Map_merge_into_self(VALUE _self, VALUE hashmap);
@@ -496,6 +497,7 @@ VALUE Message_deep_copy(VALUE _self);
496
497
  VALUE Message_eq(VALUE _self, VALUE _other);
497
498
  VALUE Message_hash(VALUE _self);
498
499
  VALUE Message_inspect(VALUE _self);
500
+ VALUE Message_to_h(VALUE _self);
499
501
  VALUE Message_index(VALUE _self, VALUE field_name);
500
502
  VALUE Message_index_set(VALUE _self, VALUE field_name, VALUE value);
501
503
  VALUE Message_descriptor(VALUE klass);
@@ -30,15 +30,15 @@
30
30
 
31
31
  #include <string.h>
32
32
 
33
- // On x86-64 Linux, we link against the 2.2.5 version of memcpy so that we
34
- // avoid depending on the 2.14 version of the symbol. This way, distributions
35
- // that are using pre-2.14 versions of glibc can successfully use the gem we
36
- // distribute (https://github.com/google/protobuf/issues/2783).
33
+ // On x86-64 Linux with glibc, we link against the 2.2.5 version of memcpy so
34
+ // that we avoid depending on the 2.14 version of the symbol. This way,
35
+ // distributions that are using pre-2.14 versions of glibc can successfully use
36
+ // the gem we distribute (https://github.com/google/protobuf/issues/2783).
37
37
  //
38
38
  // This wrapper is enabled by passing the linker flags -Wl,-wrap,memcpy in
39
39
  // extconf.rb.
40
40
  #ifdef __linux__
41
- #ifdef __x86_64__
41
+ #if defined(__x86_64__) && defined(__GNU_LIBRARY__)
42
42
  __asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
43
43
  void *__wrap_memcpy(void *dest, const void *src, size_t n) {
44
44
  return memcpy(dest, src, n);
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -927,6 +927,16 @@ module BasicTest
927
927
  :repeated_uint64=>[]
928
928
  }
929
929
  assert_equal expected_result, m.to_h
930
+
931
+ m = MapMessage.new(
932
+ :map_string_int32 => {"a" => 1, "b" => 2},
933
+ :map_string_msg => {"a" => TestMessage2.new(:foo => 1),
934
+ "b" => TestMessage2.new(:foo => 2)})
935
+ expected_result = {
936
+ :map_string_int32 => {"a" => 1, "b" => 2},
937
+ :map_string_msg => {"a" => {:foo => 1}, "b" => {:foo => 2}}
938
+ }
939
+ assert_equal expected_result, m.to_h
930
940
  end
931
941
 
932
942
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-protobuf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1.pre
4
+ version: 3.3.0
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Protobuf Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-10 00:00:00.000000000 Z
11
+ date: 2017-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler-dock
@@ -130,9 +130,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
130
130
  version: '2.5'
131
131
  required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  requirements:
133
- - - ">"
133
+ - - ">="
134
134
  - !ruby/object:Gem::Version
135
- version: 1.3.1
135
+ version: '0'
136
136
  requirements: []
137
137
  rubyforge_project:
138
138
  rubygems_version: 2.6.10