diff options
Diffstat (limited to 'ruby/lib')
-rw-r--r-- | ruby/lib/google/protobuf.rb | 5 | ||||
-rw-r--r-- | ruby/lib/google/protobuf/message_exts.rb | 4 | ||||
-rw-r--r-- | ruby/lib/google/protobuf/repeated_field.rb | 4 | ||||
-rw-r--r-- | ruby/lib/google/protobuf/well_known_types.rb | 6 |
4 files changed, 13 insertions, 6 deletions
diff --git a/ruby/lib/google/protobuf.rb b/ruby/lib/google/protobuf.rb index 9b8d8231..e20a584e 100644 --- a/ruby/lib/google/protobuf.rb +++ b/ruby/lib/google/protobuf.rb @@ -37,6 +37,7 @@ module Google module Protobuf class Error < StandardError; end class ParseError < Error; end + class TypeError < ::TypeError; end end end @@ -60,8 +61,8 @@ module Google msg.to_proto end - def self.encode_json(msg) - msg.to_json + def self.encode_json(msg, options = {}) + msg.to_json(options) end def self.decode(klass, proto) diff --git a/ruby/lib/google/protobuf/message_exts.rb b/ruby/lib/google/protobuf/message_exts.rb index e10266ba..f432f89f 100644 --- a/ruby/lib/google/protobuf/message_exts.rb +++ b/ruby/lib/google/protobuf/message_exts.rb @@ -40,8 +40,8 @@ module Google module ClassMethods end - def to_json - self.class.encode_json(self) + def to_json(options = {}) + self.class.encode_json(self, options) end def to_proto diff --git a/ruby/lib/google/protobuf/repeated_field.rb b/ruby/lib/google/protobuf/repeated_field.rb index 11d6c2eb..2dae1e65 100644 --- a/ruby/lib/google/protobuf/repeated_field.rb +++ b/ruby/lib/google/protobuf/repeated_field.rb @@ -150,12 +150,12 @@ module Google end - %w(delete delete_at delete_if shift slice! unshift).each do |method_name| + %w(delete delete_at shift slice! unshift).each do |method_name| define_array_wrapper_method(method_name) end - %w(collect! compact! fill flatten! insert reverse! + %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 diff --git a/ruby/lib/google/protobuf/well_known_types.rb b/ruby/lib/google/protobuf/well_known_types.rb index e85fac56..2ee65bc2 100644 --- a/ruby/lib/google/protobuf/well_known_types.rb +++ b/ruby/lib/google/protobuf/well_known_types.rb @@ -39,6 +39,12 @@ module Google module Protobuf Any.class_eval do + def self.pack(msg, type_url_prefix='type.googleapis.com/') + any = self.new + any.pack(msg, type_url_prefix) + any + end + 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}" |