feat(6178): support enums as integers in jruby

pull/11673/head
MQuy 2 years ago
parent e61c13c59a
commit eed5cbe5d1
  1. 6
      ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java

@ -669,6 +669,7 @@ public class RubyMessage extends RubyObject {
* @param options [Hash] options for the decoder
* preserve_proto_fieldnames: set true to use original fieldnames (default is to camelCase)
* emit_defaults: set true to emit 0/false values (default is to omit them)
* enums_as_integers: set true to emit enum values as integer (default is string)
*/
@JRubyMethod(name = "encode_json", required = 1, optional = 1, meta = true)
public static IRubyObject encodeJson(
@ -690,6 +691,7 @@ public class RubyMessage extends RubyObject {
IRubyObject emitDefaults = options.fastARef(runtime.newSymbol("emit_defaults"));
IRubyObject preserveNames = options.fastARef(runtime.newSymbol("preserve_proto_fieldnames"));
IRubyObject enumAsIntegers = options.fastARef(runtime.newSymbol("enums_as_integers"));
if (emitDefaults != null && emitDefaults.isTrue()) {
printer = printer.includingDefaultValueFields();
@ -698,6 +700,10 @@ public class RubyMessage extends RubyObject {
if (preserveNames != null && preserveNames.isTrue()) {
printer = printer.preservingProtoFieldNames();
}
if (enumAsIntegers != null && printingEnumsAsInts.isTrue()) {
printer = printer.printingEnumsAsInts();
}
}
printer =
printer.usingTypeRegistry(

Loading…
Cancel
Save