aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/protobuf/3.6.0/ruby/lib/google
diff options
context:
space:
mode:
authorGravatar Jakob Buchgraber <buchgr@google.com>2018-07-09 16:45:04 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2018-07-09 16:45:27 +0200
commit8cc62f781ff4e724f8c2f763487390063fcc79e4 (patch)
tree8b9ba11f90fa221167a3538295a201839ab30ce2 /third_party/protobuf/3.6.0/ruby/lib/google
parentee62862c3dd52634ac5ec722b98b8a0c994e7155 (diff)
Revert "Update protobuf to 3.6.0. Fixes #5439"
Diffstat (limited to 'third_party/protobuf/3.6.0/ruby/lib/google')
-rw-r--r--third_party/protobuf/3.6.0/ruby/lib/google/protobuf.rb76
-rw-r--r--third_party/protobuf/3.6.0/ruby/lib/google/protobuf/message_exts.rb53
-rw-r--r--third_party/protobuf/3.6.0/ruby/lib/google/protobuf/repeated_field.rb188
-rw-r--r--third_party/protobuf/3.6.0/ruby/lib/google/protobuf/well_known_types.rb212
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