Module: ElasticGraph::ProtoIngestion::SchemaDefinition::SchemaElements::EnumValueExtension

Defined in:
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_elements/enum_value_extension.rb

Overview

Extends enum values with protobuf naming behavior.

Instance Method Summary collapse

Instance Method Details

#proto_name(enum_value_prefix) ⇒ String

Returns this enum value's name in protobuf schemas.

Parameters:

  • enum_value_prefix (String)

    normalized prefix of the containing enum

Returns:

  • (String)


22
23
24
# File 'elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_elements/enum_value_extension.rb', line 22

def proto_name(enum_value_prefix)
  "#{enum_value_prefix}_#{Support::Casing.to_upper_snake(name)}"
end

#to_proto(number, proto_enum_value_prefix:) ⇒ String

Renders this value's protobuf definition.

Parameters:

  • number (Integer)

    protobuf enum value number

  • proto_enum_value_prefix (String)

    normalized prefix of the containing enum

Returns:

  • (String)


31
32
33
34
35
36
37
38
# File 'elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_elements/enum_value_extension.rb', line 31

def to_proto(number, proto_enum_value_prefix:)
  documentation = ProtoDocumentation
    .comment_lines_for(doc_comment, indent: "  ")
    .map { |line| "#{line}\n" }
    .join

  "#{documentation}  #{proto_name(proto_enum_value_prefix)} = #{number};"
end