Class: Ea::Sources::Qea::RelationshipBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ea/sources/qea/relationship_builder.rb

Overview

Translates EA t_connector rows into the appropriate Ea::Model::Relationship subclass. Dispatches on Connector_Type via ConnectorRelationshipMap.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(database) ⇒ RelationshipBuilder

Returns a new instance of RelationshipBuilder.



12
13
14
# File 'lib/ea/sources/qea/relationship_builder.rb', line 12

def initialize(database)
  @database = database
end

Instance Attribute Details

#databaseObject (readonly)

Returns the value of attribute database.



10
11
12
# File 'lib/ea/sources/qea/relationship_builder.rb', line 10

def database
  @database
end

Instance Method Details

#build_allObject



16
17
18
19
# File 'lib/ea/sources/qea/relationship_builder.rb', line 16

def build_all
  connectors = database.collections[:connectors] || []
  connectors.filter_map { |row| build_one(row) }
end

#build_one(row) ⇒ Object



21
22
23
24
25
26
# File 'lib/ea/sources/qea/relationship_builder.rb', line 21

def build_one(row)
  klass = ConnectorRelationshipMap.class_for(row.connector_type)
  args = common_args(row)
  args.merge!(association_args(row)) if klass == Ea::Model::Association
  klass.new(**args)
end