@@ -489,7 +489,7 @@ static VALUE FileDescriptor_alloc(VALUE klass) {
489489 * call-seq:
490490 * FileDescriptor.new => file
491491 *
492- * Returns a new file descriptor. The syntax must be set before it's passed
492+ * Returns a new file descriptor. May
493493 * to a builder.
494494 */
495495static VALUE FileDescriptor_initialize (VALUE _self , VALUE cookie ,
@@ -519,28 +519,6 @@ static VALUE FileDescriptor_name(VALUE _self) {
519519 return name == NULL ? Qnil : rb_str_new2 (name );
520520}
521521
522- /*
523- * call-seq:
524- * FileDescriptor.syntax => syntax
525- *
526- * Returns this file descriptors syntax.
527- *
528- * Valid syntax versions are:
529- * :proto2 or :proto3.
530- */
531- static VALUE FileDescriptor_syntax (VALUE _self ) {
532- FileDescriptor * self = ruby_to_FileDescriptor (_self );
533-
534- switch (upb_FileDef_Syntax (self -> filedef )) {
535- case kUpb_Syntax_Proto3 :
536- return ID2SYM (rb_intern ("proto3" ));
537- case kUpb_Syntax_Proto2 :
538- return ID2SYM (rb_intern ("proto2" ));
539- default :
540- return Qnil ;
541- }
542- }
543-
544522/*
545523 * call-seq:
546524 * FileDescriptor.options => options
@@ -564,7 +542,6 @@ static void FileDescriptor_register(VALUE module) {
564542 rb_define_alloc_func (klass , FileDescriptor_alloc );
565543 rb_define_method (klass , "initialize" , FileDescriptor_initialize , 3 );
566544 rb_define_method (klass , "name" , FileDescriptor_name , 0 );
567- rb_define_method (klass , "syntax" , FileDescriptor_syntax , 0 );
568545 rb_define_method (klass , "options" , FileDescriptor_options , 0 );
569546 rb_gc_register_address (& cFileDescriptor );
570547 cFileDescriptor = klass ;
@@ -736,6 +713,28 @@ static VALUE FieldDescriptor_default(VALUE _self) {
736713 return Convert_UpbToRuby (default_val , TypeInfo_get (self -> fielddef ), Qnil );
737714}
738715
716+ /*
717+ * call-seq:
718+ * FieldDescriptor.has_presence? => bool
719+ *
720+ * Returns whether this field tracks presence.
721+ */
722+ static VALUE FieldDescriptor_has_presence (VALUE _self ) {
723+ FieldDescriptor * self = ruby_to_FieldDescriptor (_self );
724+ return upb_FieldDef_HasPresence (self -> fielddef ) ? Qtrue : Qfalse ;
725+ }
726+
727+ /*
728+ * call-seq:
729+ * FieldDescriptor.is_packed? => bool
730+ *
731+ * Returns whether this is a repeated field that uses packed encoding.
732+ */
733+ static VALUE FieldDescriptor_is_packed (VALUE _self ) {
734+ FieldDescriptor * self = ruby_to_FieldDescriptor (_self );
735+ return upb_FieldDef_IsPacked (self -> fielddef ) ? Qtrue : Qfalse ;
736+ }
737+
739738/*
740739 * call-seq:
741740 * FieldDescriptor.json_name => json_name
@@ -943,6 +942,8 @@ static void FieldDescriptor_register(VALUE module) {
943942 rb_define_method (klass , "name" , FieldDescriptor_name , 0 );
944943 rb_define_method (klass , "type" , FieldDescriptor__type , 0 );
945944 rb_define_method (klass , "default" , FieldDescriptor_default , 0 );
945+ rb_define_method (klass , "has_presence?" , FieldDescriptor_has_presence , 0 );
946+ rb_define_method (klass , "is_packed?" , FieldDescriptor_is_packed , 0 );
946947 rb_define_method (klass , "json_name" , FieldDescriptor_json_name , 0 );
947948 rb_define_method (klass , "label" , FieldDescriptor_label , 0 );
948949 rb_define_method (klass , "number" , FieldDescriptor_number , 0 );
@@ -1163,6 +1164,17 @@ static VALUE EnumDescriptor_file_descriptor(VALUE _self) {
11631164 upb_EnumDef_File (self -> enumdef ));
11641165}
11651166
1167+ /*
1168+ * call-seq:
1169+ * EnumDescriptor.is_closed? => bool
1170+ *
1171+ * Returns whether this enum is open or closed.
1172+ */
1173+ static VALUE EnumDescriptor_is_closed (VALUE _self ) {
1174+ EnumDescriptor * self = ruby_to_EnumDescriptor (_self );
1175+ return upb_EnumDef_IsClosed (self -> enumdef ) ? Qtrue : Qfalse ;
1176+ }
1177+
11661178/*
11671179 * call-seq:
11681180 * EnumDescriptor.name => name
@@ -1275,6 +1287,7 @@ static void EnumDescriptor_register(VALUE module) {
12751287 rb_define_method (klass , "each" , EnumDescriptor_each , 0 );
12761288 rb_define_method (klass , "enummodule" , EnumDescriptor_enummodule , 0 );
12771289 rb_define_method (klass , "file_descriptor" , EnumDescriptor_file_descriptor , 0 );
1290+ rb_define_method (klass , "is_closed?" , EnumDescriptor_is_closed , 0 );
12781291 rb_define_method (klass , "options" , EnumDescriptor_options , 0 );
12791292 rb_include_module (klass , rb_mEnumerable );
12801293 rb_gc_register_address (& cEnumDescriptor );
0 commit comments