diff --git a/gapic-generator/lib/gapic/presenters/enum_value_presenter.rb b/gapic-generator/lib/gapic/presenters/enum_value_presenter.rb index ccc49b9d6..17e578d85 100644 --- a/gapic-generator/lib/gapic/presenters/enum_value_presenter.rb +++ b/gapic-generator/lib/gapic/presenters/enum_value_presenter.rb @@ -28,7 +28,18 @@ def initialize value # @return [String] The enum value name without keyword collision. def name - Gapic::RubyInfo.keywords.include?(@value.name) ? "#{@value.parent.name}::#{@value.name}" : @value.name + keyword_collision? ? "#{@value.parent.name}::#{@value.name}" : @value.name + end + + # @return [Boolean] Whether the enum name collides with a Ruby keyword. + def keyword_collision? + Gapic::RubyInfo.keywords.include? @value.name + end + + # @return [String] The doc stub string for the enum value. Prevents YARD warnings in cases of keyword + # collision. + def doc_line + keyword_collision? ? "const_set :#{@value.name}, #{@value.number}" : "#{@value.name} = #{@value.number}" end def doc_description diff --git a/gapic-generator/templates/default/proto_docs/_enum.text.erb b/gapic-generator/templates/default/proto_docs/_enum.text.erb index f7b4674a4..ee237aa96 100644 --- a/gapic-generator/templates/default/proto_docs/_enum.text.erb +++ b/gapic-generator/templates/default/proto_docs/_enum.text.erb @@ -9,6 +9,6 @@ module <%= enum.name %> <%- if value.doc_description -%> <%= indent value.doc_description, " # " %> <%- end -%> - <%= value.name %> = <%= value.number %> + <%= value.doc_line %> <%- end -%> end diff --git a/gapic-generator/test/gapic/presenters/enum_presenter_test.rb b/gapic-generator/test/gapic/presenters/enum_presenter_test.rb index 465311fb6..0cc7f0c42 100644 --- a/gapic-generator/test/gapic/presenters/enum_presenter_test.rb +++ b/gapic-generator/test/gapic/presenters/enum_presenter_test.rb @@ -29,5 +29,13 @@ def test_enum_value_name_no_keyword_collision def test_enum_value_name_with_keyword_collision evp = typical_garbage_enum_value 4 assert_equal "GarbageEnum::END", evp.name + assert evp.keyword_collision? + assert_equal "const_set :END, 4", evp.doc_line + end + + def test_enum_value_doc_line_no_keyword_collision + evp = typical_garbage_enum_value 3 + refute evp.keyword_collision? + assert_equal "DUMPSTER = 3", evp.doc_line end end diff --git a/shared/output/gapic/templates/garbage/proto_docs/garbage/garbage.rb b/shared/output/gapic/templates/garbage/proto_docs/garbage/garbage.rb index de2051f66..e2991f56a 100644 --- a/shared/output/gapic/templates/garbage/proto_docs/garbage/garbage.rb +++ b/shared/output/gapic/templates/garbage/proto_docs/garbage/garbage.rb @@ -477,7 +477,7 @@ module GarbageEnum DUMPSTER = 3 # The end of garbage. - GarbageEnum::END = 4 + const_set :END, 4 end end end