Class: MermaidRailsErd::RelationshipBuilders::BaseRelationshipBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/mermaid_rails_erd/relationship_builders/base_relationship_builder.rb

Constant Summary collapse

@@one_to_one_keys =

Class variable to track one-to-one relationships across builder instances

Set.new

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(symbol_mapper:, association_resolver:, model_data_collector: nil) ⇒ BaseRelationshipBuilder

Returns a new instance of BaseRelationshipBuilder.



14
15
16
17
18
# File 'lib/mermaid_rails_erd/relationship_builders/base_relationship_builder.rb', line 14

def initialize(symbol_mapper:, association_resolver:, model_data_collector: nil)
  @symbol_mapper = symbol_mapper
  @association_resolver = association_resolver
  @model_data_collector = model_data_collector
end

Instance Attribute Details

#association_resolverObject (readonly)

Returns the value of attribute association_resolver.



9
10
11
# File 'lib/mermaid_rails_erd/relationship_builders/base_relationship_builder.rb', line 9

def association_resolver
  @association_resolver
end

#model_data_collectorObject (readonly)

Returns the value of attribute model_data_collector.



9
10
11
# File 'lib/mermaid_rails_erd/relationship_builders/base_relationship_builder.rb', line 9

def model_data_collector
  @model_data_collector
end

#symbol_mapperObject (readonly)

Returns the value of attribute symbol_mapper.



9
10
11
# File 'lib/mermaid_rails_erd/relationship_builders/base_relationship_builder.rb', line 9

def symbol_mapper
  @symbol_mapper
end

Instance Method Details

#build(model, assoc) ⇒ Object

Raises:

  • (NotImplementedError)


20
21
22
# File 'lib/mermaid_rails_erd/relationship_builders/base_relationship_builder.rb', line 20

def build(model, assoc)
  raise NotImplementedError, "Subclasses must implement #build"
end