Module: Avro::Builder::Types::ComplexType
- Defined in:
- lib/avro/builder/types/complex_type.rb
Overview
This module provides common functionality for non-primitive types that do not require a name to be created.
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(cache:, field: nil) ⇒ Object
Override initialize so that type name is not required.
- #namespace ⇒ Object
- #serialize(_reference_state, overrides: {}) ⇒ Object
- #to_h(reference_state) ⇒ Object
Class Method Details
.included(base) ⇒ Object
9 10 11 |
# File 'lib/avro/builder/types/complex_type.rb', line 9 def self.included(base) base.extend ClassMethods end |
Instance Method Details
#initialize(cache:, field: nil) ⇒ Object
Override initialize so that type name is not required
14 15 16 |
# File 'lib/avro/builder/types/complex_type.rb', line 14 def initialize(cache:, field: nil) super(self.class.avro_type_name, cache: cache, field: field) end |
#namespace ⇒ Object
18 19 20 |
# File 'lib/avro/builder/types/complex_type.rb', line 18 def namespace field.namespace end |
#serialize(_reference_state, overrides: {}) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/avro/builder/types/complex_type.rb', line 22 def serialize(_reference_state, overrides: {}) { type: avro_type_name, logicalType: logical_type }.merge(overrides).reject { |_, v| v.nil? } end |
#to_h(reference_state) ⇒ Object
29 30 31 |
# File 'lib/avro/builder/types/complex_type.rb', line 29 def to_h(reference_state) serialize(reference_state) end |