diff options
author | Jakob Buchgraber <buchgr@google.com> | 2018-07-09 16:45:04 +0200 |
---|---|---|
committer | Jakob Buchgraber <buchgr@google.com> | 2018-07-09 16:45:27 +0200 |
commit | 8cc62f781ff4e724f8c2f763487390063fcc79e4 (patch) | |
tree | 8b9ba11f90fa221167a3538295a201839ab30ce2 /third_party/protobuf/3.6.0/ruby/lib/google | |
parent | ee62862c3dd52634ac5ec722b98b8a0c994e7155 (diff) |
Revert "Update protobuf to 3.6.0. Fixes #5439"
This reverts commit 6fd4e0edd4de22dec9eda13dc0b29214f2ca117e.
Diffstat (limited to 'third_party/protobuf/3.6.0/ruby/lib/google')
4 files changed, 0 insertions, 529 deletions
diff --git a/third_party/protobuf/3.6.0/ruby/lib/google/protobuf.rb b/third_party/protobuf/3.6.0/ruby/lib/google/protobuf.rb deleted file mode 100644 index 4a805e88cc..0000000000 --- a/third_party/protobuf/3.6.0/ruby/lib/google/protobuf.rb +++ /dev/null @@ -1,76 +0,0 @@ -# Protocol Buffers - Google's data interchange format -# Copyright 2008 Google Inc. All rights reserved. -# https://developers.google.com/protocol-buffers/ -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# require mixins before we hook them into the java & c code -require 'google/protobuf/message_exts' - -# We define these before requiring the platform-specific modules. -# That way the module init can grab references to these. -module Google - module Protobuf - class Error < StandardError; end - class ParseError < Error; end - end -end - -if RUBY_PLATFORM == "java" - require 'json' - require 'google/protobuf_java' -else - begin - require "google/#{RUBY_VERSION.sub(/\.\d+$/, '')}/protobuf_c" - rescue LoadError - require 'google/protobuf_c' - end -end - -require 'google/protobuf/repeated_field' - -module Google - module Protobuf - - def self.encode(msg) - msg.to_proto - end - - def self.encode_json(msg, options = {}) - msg.to_json(options) - end - - def self.decode(klass, proto) - klass.decode(proto) - end - - def self.decode_json(klass, json) - klass.decode_json(json) - end - - end -end diff --git a/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/message_exts.rb b/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/message_exts.rb deleted file mode 100644 index f432f89fed..0000000000 --- a/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/message_exts.rb +++ /dev/null @@ -1,53 +0,0 @@ -# Protocol Buffers - Google's data interchange format -# Copyright 2008 Google Inc. All rights reserved. -# https://developers.google.com/protocol-buffers/ -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -module Google - module Protobuf - module MessageExts - - #this is only called in jruby; mri loades the ClassMethods differently - def self.included(klass) - klass.extend(ClassMethods) - end - - module ClassMethods - end - - def to_json(options = {}) - self.class.encode_json(self, options) - end - - def to_proto - self.class.encode(self) - end - - end - end -end diff --git a/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/repeated_field.rb b/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/repeated_field.rb deleted file mode 100644 index 2dae1e65aa..0000000000 --- a/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/repeated_field.rb +++ /dev/null @@ -1,188 +0,0 @@ -# Protocol Buffers - Google's data interchange format -# Copyright 2008 Google Inc. All rights reserved. -# https://developers.google.com/protocol-buffers/ -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -require 'forwardable' - -# -# This class makes RepeatedField act (almost-) like a Ruby Array. -# It has convenience methods that extend the core C or Java based -# methods. -# -# This is a best-effort to mirror Array behavior. Two comments: -# 1) patches always welcome :) -# 2) if performance is an issue, feel free to rewrite the method -# in jruby and C. The source code has plenty of examples -# -# KNOWN ISSUES -# - #[]= doesn't allow less used approaches such as `arr[1, 2] = 'fizz'` -# - #concat should return the orig array -# - #push should accept multiple arguments and push them all at the same time -# -module Google - module Protobuf - class RepeatedField - extend Forwardable - - # methods defined in C or Java: - # + - # [], at - # []= - # concat - # clear - # dup, clone - # each - # push, << - # replace - # length, size - # == - # to_ary, to_a - # also all enumerable - # - # NOTE: using delegators rather than method_missing to make the - # relationship explicit instead of implicit - def_delegators :to_ary, - :&, :*, :-, :'<=>', - :assoc, :bsearch, :bsearch_index, :combination, :compact, :count, - :cycle, :dig, :drop, :drop_while, :eql?, :fetch, :find_index, :flatten, - :include?, :index, :inspect, :join, - :pack, :permutation, :product, :pretty_print, :pretty_print_cycle, - :rassoc, :repeated_combination, :repeated_permutation, :reverse, - :rindex, :rotate, :sample, :shuffle, :shelljoin, - :to_s, :transpose, :uniq, :| - - - def first(n=nil) - n ? self[0..n] : self[0] - end - - - def last(n=nil) - n ? self[(self.size-n-1)..-1] : self[-1] - end - - - def pop(n=nil) - if n - results = [] - n.times{ results << pop_one } - return results - else - return pop_one - end - end - - - def empty? - self.size == 0 - end - - # array aliases into enumerable - alias_method :each_index, :each_with_index - alias_method :slice, :[] - alias_method :values_at, :select - alias_method :map, :collect - - - class << self - def define_array_wrapper_method(method_name) - define_method(method_name) do |*args, &block| - arr = self.to_a - result = arr.send(method_name, *args) - self.replace(arr) - return result if result - return block ? block.call : result - end - end - private :define_array_wrapper_method - - - def define_array_wrapper_with_result_method(method_name) - define_method(method_name) do |*args, &block| - # result can be an Enumerator, Array, or nil - # Enumerator can sometimes be returned if a block is an optional argument and it is not passed in - # nil usually specifies that no change was made - result = self.to_a.send(method_name, *args, &block) - if result - new_arr = result.to_a - self.replace(new_arr) - if result.is_a?(Enumerator) - # generate a fresh enum; rewinding the exiting one, in Ruby 2.2, will - # reset the enum with the same length, but all the #next calls will - # return nil - result = new_arr.to_enum - # generate a wrapper enum so any changes which occur by a chained - # enum can be captured - ie = ProxyingEnumerator.new(self, result) - result = ie.to_enum - end - end - result - end - end - private :define_array_wrapper_with_result_method - end - - - %w(delete delete_at shift slice! unshift).each do |method_name| - define_array_wrapper_method(method_name) - end - - - %w(collect! compact! delete_if fill flatten! insert reverse! - rotate! select! shuffle! sort! sort_by! uniq!).each do |method_name| - define_array_wrapper_with_result_method(method_name) - end - alias_method :keep_if, :select! - alias_method :map!, :collect! - alias_method :reject!, :delete_if - - - # propagates changes made by user of enumerator back to the original repeated field. - # This only applies in cases where the calling function which created the enumerator, - # such as #sort!, modifies itself rather than a new array, such as #sort - class ProxyingEnumerator < Struct.new(:repeated_field, :external_enumerator) - def each(*args, &block) - results = [] - external_enumerator.each_with_index do |val, i| - result = yield(val) - results << result - #nil means no change occurred from yield; usually occurs when #to_a is called - if result - repeated_field[i] = result if result != val - end - end - results - end - end - - - end - end -end diff --git a/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/well_known_types.rb b/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/well_known_types.rb deleted file mode 100644 index 921ddbc06f..0000000000 --- a/third_party/protobuf/3.6.0/ruby/lib/google/protobuf/well_known_types.rb +++ /dev/null @@ -1,212 +0,0 @@ -#!/usr/bin/ruby -# Protocol Buffers - Google's data interchange format -# Copyright 2008 Google Inc. All rights reserved. -# https://developers.google.com/protocol-buffers/ -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -require 'google/protobuf/any_pb' -require 'google/protobuf/duration_pb' -require 'google/protobuf/field_mask_pb' -require 'google/protobuf/struct_pb' -require 'google/protobuf/timestamp_pb' - -module Google - module Protobuf - - Any.class_eval do - def pack(msg, type_url_prefix='type.googleapis.com/') - if type_url_prefix.empty? or type_url_prefix[-1] != '/' then - self.type_url = "#{type_url_prefix}/#{msg.class.descriptor.name}" - else - self.type_url = "#{type_url_prefix}#{msg.class.descriptor.name}" - end - self.value = msg.to_proto - end - - def unpack(klass) - if self.is(klass) then - klass.decode(self.value) - else - nil - end - end - - def type_name - return self.type_url.split("/")[-1] - end - - def is(klass) - return self.type_name == klass.descriptor.name - end - end - - Timestamp.class_eval do - def to_time - Time.at(self.to_f) - end - - def from_time(time) - self.seconds = time.to_i - self.nanos = time.nsec - end - - def to_i - self.seconds - end - - def to_f - self.seconds + (self.nanos.quo(1_000_000_000)) - end - end - - Duration.class_eval do - def to_f - self.seconds + (self.nanos.to_f / 1_000_000_000) - end - end - - class UnexpectedStructType < Google::Protobuf::Error; end - - Value.class_eval do - def to_ruby(recursive = false) - case self.kind - when :struct_value - if recursive - self.struct_value.to_h - else - self.struct_value - end - when :list_value - if recursive - self.list_value.to_a - else - self.list_value - end - when :null_value - nil - when :number_value - self.number_value - when :string_value - self.string_value - when :bool_value - self.bool_value - else - raise UnexpectedStructType - end - end - - def from_ruby(value) - case value - when NilClass - self.null_value = 0 - when Numeric - self.number_value = value - when String - self.string_value = value - when TrueClass - self.bool_value = true - when FalseClass - self.bool_value = false - when Struct - self.struct_value = value - when Hash - self.struct_value = Struct.from_hash(value) - when ListValue - self.list_value = value - when Array - self.list_value = ListValue.from_a(value) - else - raise UnexpectedStructType - end - end - end - - Struct.class_eval do - def [](key) - self.fields[key].to_ruby - end - - def []=(key, value) - unless key.is_a?(String) - raise UnexpectedStructType, "Struct keys must be strings." - end - self.fields[key] ||= Google::Protobuf::Value.new - self.fields[key].from_ruby(value) - end - - def to_h - ret = {} - self.fields.each { |key, val| ret[key] = val.to_ruby(true) } - ret - end - - def self.from_hash(hash) - ret = Struct.new - hash.each { |key, val| ret[key] = val } - ret - end - end - - ListValue.class_eval do - include Enumerable - - def length - self.values.length - end - - def [](index) - self.values[index].to_ruby - end - - def []=(index, value) - self.values[index].from_ruby(value) - end - - def <<(value) - wrapper = Google::Protobuf::Value.new - wrapper.from_ruby(value) - self.values << wrapper - end - - def each - self.values.each { |x| yield(x.to_ruby) } - end - - def to_a - self.values.map { |x| x.to_ruby(true) } - end - - def self.from_a(arr) - ret = ListValue.new - arr.each { |val| ret << val } - ret - end - end - - end -end |