Module: RungerRailsModelExplorer

Defined in:
lib/runger_rails_model_explorer.rb,
lib/runger_rails_model_explorer/version.rb

Constant Summary collapse

VERSION =
'0.2.2'

Class Method Summary collapse

Class Method Details

.model_metadataObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/runger_rails_model_explorer.rb', line 7

def 
  Rails.application.eager_load!

  models =
    ActiveRecord::Base.descendants.select do |model_class|
      !model_class.abstract_class? && model_class.table_exists?
    end

  models.map do |model|
    {
      model_name: model.name,
      table_name: model.table_name,
      columns: model.columns.map do |column|
        {
          name: column.name,
          type: column.type,
          null: column.null,
          default: column.default,
        }
      end,
      associations: model.reflect_on_all_associations.map do |association|
        {
          name: association.name,
          macro: association.macro,
          class_name: association.class_name,
          options: association.options,
        }
      end,
    }
  end
end