Module: Avromatic::Model::NestedModels::ClassMethods

Defined in:
lib/avromatic/model/nested_models.rb

Instance Method Summary collapse

Instance Method Details

#referenced_model_classesObject



27
28
29
# File 'lib/avromatic/model/nested_models.rb', line 27

def referenced_model_classes
  attribute_definitions.values.flat_map { |definition| definition.type.referenced_model_classes }.freeze
end

#register!Object

Register this model if it can be used as a nested model.



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/avromatic/model/nested_models.rb', line 14

def register!
  return unless key_avro_schema.nil? && value_avro_schema.type_sym == :record

  roots = [self]
  until roots.empty?
    model = roots.shift
    next if nested_models.registered?(model)

    nested_models.register(model)
    roots.concat(model.referenced_model_classes)
  end
end