google-protobuf 3.2.0.2-java → 3.3.0-java

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: 461bfa4fb4342cdd85bed3865116944153d68296
4
- data.tar.gz: 61085ca6eba70751490028a3d85deba2706a61b5
3
+ metadata.gz: 037955ea5a91fe5fa697328de544f711a8e7b9d3
4
+ data.tar.gz: bac8b49f28ac405ac5351fe6b8a711d9c3956007
5
5
  SHA512:
6
- metadata.gz: 1b636387c88818f4b7c75ae9c6d3caab23212a7c1a1c52431ade68d46ad53299d4fcd58edc64d52df287be44cb1c68df3dfde6f25c2640735a76f1779914b71f
7
- data.tar.gz: 4cb6386fa5466ca352e02e7edbfe99eea04e2d00c673349176ef083ebde7f95530539c9e3beeabd4b4c8cec69ed0bf8f628568101733b8a915f411f88930884f
6
+ metadata.gz: e74099bc053254661cd890867f8ea863fc37de63352eb312507b192f34ef7c584e7a7d77d52764e1401fd67de24d42f0200fa691aae636eb43628cf3f3d77c67
7
+ data.tar.gz: 787a5410618113d974d1eb72c9f4b425f4dafdc46a642a610a665022bf8cb985eba271c14833e0b50a94bb69e4137c033ed94b0e7b7dcddc33fd76e1f72fd986
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.0.2
4
+ version: 3.3.0
5
5
  platform: java
6
6
  authors:
7
7
  - Protobuf Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-15 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
  requirement: !ruby/object:Gem::Requirement
@@ -64,19 +64,15 @@ executables: []
64
64
  extensions: []
65
65
  extra_rdoc_files: []
66
66
  files:
67
- - lib/google/protobuf.rb
68
67
  - lib/google/protobuf/any_pb.rb
69
68
  - lib/google/protobuf/api_pb.rb
70
69
  - lib/google/protobuf/duration_pb.rb
71
70
  - lib/google/protobuf/empty_pb.rb
72
71
  - lib/google/protobuf/field_mask_pb.rb
73
- - lib/google/protobuf/message_exts.rb
74
- - lib/google/protobuf/repeated_field.rb
75
72
  - lib/google/protobuf/source_context_pb.rb
76
73
  - lib/google/protobuf/struct_pb.rb
77
74
  - lib/google/protobuf/timestamp_pb.rb
78
75
  - lib/google/protobuf/type_pb.rb
79
- - lib/google/protobuf/well_known_types.rb
80
76
  - lib/google/protobuf/wrappers_pb.rb
81
77
  - lib/google/protobuf_java.jar
82
78
  - tests/basic.rb
@@ -1,76 +0,0 @@
1
- # Protocol Buffers - Google's data interchange format
2
- # Copyright 2008 Google Inc. All rights reserved.
3
- # https://developers.google.com/protocol-buffers/
4
- #
5
- # Redistribution and use in source and binary forms, with or without
6
- # modification, are permitted provided that the following conditions are
7
- # met:
8
- #
9
- # * Redistributions of source code must retain the above copyright
10
- # notice, this list of conditions and the following disclaimer.
11
- # * Redistributions in binary form must reproduce the above
12
- # copyright notice, this list of conditions and the following disclaimer
13
- # in the documentation and/or other materials provided with the
14
- # distribution.
15
- # * Neither the name of Google Inc. nor the names of its
16
- # contributors may be used to endorse or promote products derived from
17
- # this software without specific prior written permission.
18
- #
19
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
- # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
- # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
- # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
-
31
- # require mixins before we hook them into the java & c code
32
- require 'google/protobuf/message_exts'
33
-
34
- # We define these before requiring the platform-specific modules.
35
- # That way the module init can grab references to these.
36
- module Google
37
- module Protobuf
38
- class Error < StandardError; end
39
- class ParseError < Error; end
40
- end
41
- end
42
-
43
- if RUBY_PLATFORM == "java"
44
- require 'json'
45
- require 'google/protobuf_java'
46
- else
47
- begin
48
- require "google/#{RUBY_VERSION.sub(/\.\d+$/, '')}/protobuf_c"
49
- rescue LoadError
50
- require 'google/protobuf_c'
51
- end
52
- end
53
-
54
- require 'google/protobuf/repeated_field'
55
-
56
- module Google
57
- module Protobuf
58
-
59
- def self.encode(msg)
60
- msg.to_proto
61
- end
62
-
63
- def self.encode_json(msg)
64
- msg.to_json
65
- end
66
-
67
- def self.decode(klass, proto)
68
- klass.decode(proto)
69
- end
70
-
71
- def self.decode_json(klass, json)
72
- klass.decode_json(json)
73
- end
74
-
75
- end
76
- end
@@ -1,53 +0,0 @@
1
- # Protocol Buffers - Google's data interchange format
2
- # Copyright 2008 Google Inc. All rights reserved.
3
- # https://developers.google.com/protocol-buffers/
4
- #
5
- # Redistribution and use in source and binary forms, with or without
6
- # modification, are permitted provided that the following conditions are
7
- # met:
8
- #
9
- # * Redistributions of source code must retain the above copyright
10
- # notice, this list of conditions and the following disclaimer.
11
- # * Redistributions in binary form must reproduce the above
12
- # copyright notice, this list of conditions and the following disclaimer
13
- # in the documentation and/or other materials provided with the
14
- # distribution.
15
- # * Neither the name of Google Inc. nor the names of its
16
- # contributors may be used to endorse or promote products derived from
17
- # this software without specific prior written permission.
18
- #
19
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
- # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
- # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
- # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
-
31
- module Google
32
- module Protobuf
33
- module MessageExts
34
-
35
- #this is only called in jruby; mri loades the ClassMethods differently
36
- def self.included(klass)
37
- klass.extend(ClassMethods)
38
- end
39
-
40
- module ClassMethods
41
- end
42
-
43
- def to_json
44
- self.class.encode_json(self)
45
- end
46
-
47
- def to_proto
48
- self.class.encode(self)
49
- end
50
-
51
- end
52
- end
53
- end
@@ -1,188 +0,0 @@
1
- # Protocol Buffers - Google's data interchange format
2
- # Copyright 2008 Google Inc. All rights reserved.
3
- # https://developers.google.com/protocol-buffers/
4
- #
5
- # Redistribution and use in source and binary forms, with or without
6
- # modification, are permitted provided that the following conditions are
7
- # met:
8
- #
9
- # * Redistributions of source code must retain the above copyright
10
- # notice, this list of conditions and the following disclaimer.
11
- # * Redistributions in binary form must reproduce the above
12
- # copyright notice, this list of conditions and the following disclaimer
13
- # in the documentation and/or other materials provided with the
14
- # distribution.
15
- # * Neither the name of Google Inc. nor the names of its
16
- # contributors may be used to endorse or promote products derived from
17
- # this software without specific prior written permission.
18
- #
19
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
- # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
- # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
- # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
-
31
- require 'forwardable'
32
-
33
- #
34
- # This class makes RepeatedField act (almost-) like a Ruby Array.
35
- # It has convenience methods that extend the core C or Java based
36
- # methods.
37
- #
38
- # This is a best-effort to mirror Array behavior. Two comments:
39
- # 1) patches always welcome :)
40
- # 2) if performance is an issue, feel free to rewrite the method
41
- # in jruby and C. The source code has plenty of examples
42
- #
43
- # KNOWN ISSUES
44
- # - #[]= doesn't allow less used approaches such as `arr[1, 2] = 'fizz'`
45
- # - #concat should return the orig array
46
- # - #push should accept multiple arguments and push them all at the same time
47
- #
48
- module Google
49
- module Protobuf
50
- class RepeatedField
51
- extend Forwardable
52
-
53
- # methods defined in C or Java:
54
- # +
55
- # [], at
56
- # []=
57
- # concat
58
- # clear
59
- # dup, clone
60
- # each
61
- # push, <<
62
- # replace
63
- # length, size
64
- # ==
65
- # to_ary, to_a
66
- # also all enumerable
67
- #
68
- # NOTE: using delegators rather than method_missing to make the
69
- # relationship explicit instead of implicit
70
- def_delegators :to_ary,
71
- :&, :*, :-, :'<=>',
72
- :assoc, :bsearch, :bsearch_index, :combination, :compact, :count,
73
- :cycle, :dig, :drop, :drop_while, :eql?, :fetch, :find_index, :flatten,
74
- :include?, :index, :inspect, :join,
75
- :pack, :permutation, :product, :pretty_print, :pretty_print_cycle,
76
- :rassoc, :repeated_combination, :repeated_permutation, :reverse,
77
- :rindex, :rotate, :sample, :shuffle, :shelljoin,
78
- :to_s, :transpose, :uniq, :|
79
-
80
-
81
- def first(n=nil)
82
- n ? self[0..n] : self[0]
83
- end
84
-
85
-
86
- def last(n=nil)
87
- n ? self[(self.size-n-1)..-1] : self[-1]
88
- end
89
-
90
-
91
- def pop(n=nil)
92
- if n
93
- results = []
94
- n.times{ results << pop_one }
95
- return results
96
- else
97
- return pop_one
98
- end
99
- end
100
-
101
-
102
- def empty?
103
- self.size == 0
104
- end
105
-
106
- # array aliases into enumerable
107
- alias_method :each_index, :each_with_index
108
- alias_method :slice, :[]
109
- alias_method :values_at, :select
110
- alias_method :map, :collect
111
-
112
-
113
- class << self
114
- def define_array_wrapper_method(method_name)
115
- define_method(method_name) do |*args, &block|
116
- arr = self.to_a
117
- result = arr.send(method_name, *args)
118
- self.replace(arr)
119
- return result if result
120
- return block ? block.call : result
121
- end
122
- end
123
- private :define_array_wrapper_method
124
-
125
-
126
- def define_array_wrapper_with_result_method(method_name)
127
- define_method(method_name) do |*args, &block|
128
- # result can be an Enumerator, Array, or nil
129
- # Enumerator can sometimes be returned if a block is an optional argument and it is not passed in
130
- # nil usually specifies that no change was made
131
- result = self.to_a.send(method_name, *args, &block)
132
- if result
133
- new_arr = result.to_a
134
- self.replace(new_arr)
135
- if result.is_a?(Enumerator)
136
- # generate a fresh enum; rewinding the exiting one, in Ruby 2.2, will
137
- # reset the enum with the same length, but all the #next calls will
138
- # return nil
139
- result = new_arr.to_enum
140
- # generate a wrapper enum so any changes which occur by a chained
141
- # enum can be captured
142
- ie = ProxyingEnumerator.new(self, result)
143
- result = ie.to_enum
144
- end
145
- end
146
- result
147
- end
148
- end
149
- private :define_array_wrapper_with_result_method
150
- end
151
-
152
-
153
- %w(delete delete_at delete_if shift slice! unshift).each do |method_name|
154
- define_array_wrapper_method(method_name)
155
- end
156
-
157
-
158
- %w(collect! compact! fill flatten! insert reverse!
159
- rotate! select! shuffle! sort! sort_by! uniq!).each do |method_name|
160
- define_array_wrapper_with_result_method(method_name)
161
- end
162
- alias_method :keep_if, :select!
163
- alias_method :map!, :collect!
164
- alias_method :reject!, :delete_if
165
-
166
-
167
- # propagates changes made by user of enumerator back to the original repeated field.
168
- # This only applies in cases where the calling function which created the enumerator,
169
- # such as #sort!, modifies itself rather than a new array, such as #sort
170
- class ProxyingEnumerator < Struct.new(:repeated_field, :external_enumerator)
171
- def each(*args, &block)
172
- results = []
173
- external_enumerator.each_with_index do |val, i|
174
- result = yield(val)
175
- results << result
176
- #nil means no change occurred from yield; usually occurs when #to_a is called
177
- if result
178
- repeated_field[i] = result if result != val
179
- end
180
- end
181
- results
182
- end
183
- end
184
-
185
-
186
- end
187
- end
188
- end
@@ -1,212 +0,0 @@
1
- #!/usr/bin/ruby
2
- # Protocol Buffers - Google's data interchange format
3
- # Copyright 2008 Google Inc. All rights reserved.
4
- # https://developers.google.com/protocol-buffers/
5
- #
6
- # Redistribution and use in source and binary forms, with or without
7
- # modification, are permitted provided that the following conditions are
8
- # met:
9
- #
10
- # * Redistributions of source code must retain the above copyright
11
- # notice, this list of conditions and the following disclaimer.
12
- # * Redistributions in binary form must reproduce the above
13
- # copyright notice, this list of conditions and the following disclaimer
14
- # in the documentation and/or other materials provided with the
15
- # distribution.
16
- # * Neither the name of Google Inc. nor the names of its
17
- # contributors may be used to endorse or promote products derived from
18
- # this software without specific prior written permission.
19
- #
20
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
- # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
- # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
- # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
- # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
-
32
- require 'google/protobuf/any_pb'
33
- require 'google/protobuf/duration_pb'
34
- require 'google/protobuf/field_mask_pb'
35
- require 'google/protobuf/struct_pb'
36
- require 'google/protobuf/timestamp_pb'
37
-
38
- module Google
39
- module Protobuf
40
-
41
- Any.class_eval do
42
- def pack(msg, type_url_prefix='type.googleapis.com/')
43
- if type_url_prefix.empty? or type_url_prefix[-1] != '/' then
44
- self.type_url = "#{type_url_prefix}/#{msg.class.descriptor.name}"
45
- else
46
- self.type_url = "#{type_url_prefix}#{msg.class.descriptor.name}"
47
- end
48
- self.value = msg.to_proto
49
- end
50
-
51
- def unpack(klass)
52
- if self.is(klass) then
53
- klass.decode(self.value)
54
- else
55
- nil
56
- end
57
- end
58
-
59
- def type_name
60
- return self.type_url.split("/")[-1]
61
- end
62
-
63
- def is(klass)
64
- return self.type_name == klass.descriptor.name
65
- end
66
- end
67
-
68
- Timestamp.class_eval do
69
- def to_time
70
- Time.at(self.to_f)
71
- end
72
-
73
- def from_time(time)
74
- self.seconds = time.to_i
75
- self.nanos = time.nsec
76
- end
77
-
78
- def to_i
79
- self.seconds
80
- end
81
-
82
- def to_f
83
- self.seconds + (self.nanos.to_f / 1_000_000_000)
84
- end
85
- end
86
-
87
- Duration.class_eval do
88
- def to_f
89
- self.seconds + (self.nanos.to_f / 1_000_000_000)
90
- end
91
- end
92
-
93
- class UnexpectedStructType < Google::Protobuf::Error; end
94
-
95
- Value.class_eval do
96
- def to_ruby(recursive = false)
97
- case self.kind
98
- when :struct_value
99
- if recursive
100
- self.struct_value.to_h
101
- else
102
- self.struct_value
103
- end
104
- when :list_value
105
- if recursive
106
- self.list_value.to_a
107
- else
108
- self.list_value
109
- end
110
- when :null_value
111
- nil
112
- when :number_value
113
- self.number_value
114
- when :string_value
115
- self.string_value
116
- when :bool_value
117
- self.bool_value
118
- else
119
- raise UnexpectedStructType
120
- end
121
- end
122
-
123
- def from_ruby(value)
124
- case value
125
- when NilClass
126
- self.null_value = 0
127
- when Numeric
128
- self.number_value = value
129
- when String
130
- self.string_value = value
131
- when TrueClass
132
- self.bool_value = true
133
- when FalseClass
134
- self.bool_value = false
135
- when Struct
136
- self.struct_value = value
137
- when Hash
138
- self.struct_value = Struct.from_hash(value)
139
- when ListValue
140
- self.list_value = value
141
- when Array
142
- self.list_value = ListValue.from_a(value)
143
- else
144
- raise UnexpectedStructType
145
- end
146
- end
147
- end
148
-
149
- Struct.class_eval do
150
- def [](key)
151
- self.fields[key].to_ruby
152
- end
153
-
154
- def []=(key, value)
155
- unless key.is_a?(String)
156
- raise UnexpectedStructType, "Struct keys must be strings."
157
- end
158
- self.fields[key] ||= Google::Protobuf::Value.new
159
- self.fields[key].from_ruby(value)
160
- end
161
-
162
- def to_h
163
- ret = {}
164
- self.fields.each { |key, val| ret[key] = val.to_ruby(true) }
165
- ret
166
- end
167
-
168
- def self.from_hash(hash)
169
- ret = Struct.new
170
- hash.each { |key, val| ret[key] = val }
171
- ret
172
- end
173
- end
174
-
175
- ListValue.class_eval do
176
- include Enumerable
177
-
178
- def length
179
- self.values.length
180
- end
181
-
182
- def [](index)
183
- self.values[index].to_ruby
184
- end
185
-
186
- def []=(index, value)
187
- self.values[index].from_ruby(value)
188
- end
189
-
190
- def <<(value)
191
- wrapper = Google::Protobuf::Value.new
192
- wrapper.from_ruby(value)
193
- self.values << wrapper
194
- end
195
-
196
- def each
197
- self.values.each { |x| yield(x.to_ruby) }
198
- end
199
-
200
- def to_a
201
- self.values.map { |x| x.to_ruby(true) }
202
- end
203
-
204
- def self.from_a(arr)
205
- ret = ListValue.new
206
- arr.each { |val| ret << val }
207
- ret
208
- end
209
- end
210
-
211
- end
212
- end