Class: ElasticGraph::ProtoIngestion::SchemaDefinition::Schema
- Inherits:
-
Object
- Object
- ElasticGraph::ProtoIngestion::SchemaDefinition::Schema
- Defined in:
- elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema.rb
Overview
Builds a proto3 schema string from an ElasticGraph schema definition.
Instance Method Summary collapse
-
#initialize(state:, all_types:, package_name:) ⇒ Schema
constructor
A new instance of Schema.
-
#to_proto ⇒ String
Renders the schema as a valid
proto3file.
Constructor Details
#initialize(state:, all_types:, package_name:) ⇒ Schema
Returns a new instance of Schema.
22 23 24 25 26 |
# File 'elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema.rb', line 22 def initialize(state:, all_types:, package_name:) @state = state @all_types = all_types @package_name = package_name end |
Instance Method Details
#to_proto ⇒ String
Renders the schema as a valid proto3 file.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema.rb', line 31 def to_proto types = proto_types return "" if types.empty? validate_unique_enum_value_prefixes(types) sections = [ %(syntax = "proto3";), "package #{@package_name};", render_definitions(types) ] sections.join("\n\n") + "\n" end |