Class: Diagrammer::ModelIntrospector

Inherits:
Object
  • Object
show all
Defined in:
lib/diagrammer/model_introspector.rb

Constant Summary collapse

ASSOCIATION_MACROS =
%i[belongs_to has_one has_many has_and_belongs_to_many].freeze

Instance Method Summary collapse

Constructor Details

#initialize(models: nil) ⇒ ModelIntrospector

Returns a new instance of ModelIntrospector.



9
10
11
# File 'lib/diagrammer/model_introspector.rb', line 9

def initialize(models: nil)
  @models = models
end

Instance Method Details

#callObject



13
14
15
16
17
18
19
20
21
# File 'lib/diagrammer/model_introspector.rb', line 13

def call
  eager_load_rails_application

  models = selected_models.sort_by(&:name)
  {
    tables: unique_tables(models),
    relationships: relationships_for(models)
  }
end