You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: missing_foreign_keys.rb
    path of file: ./repos/yeet_dba/lib/yeet_dba
    
    the code of the file until where you have to start completion: module YeetDba
  class MissingForeignKeys
    def self.foreign_keys
      eager_load!
      tables.map do |table_name|
        Table.new(table_name: table_name,
                  tables: tables).missing_keys
      end.flatten
    end

    def self.invalid_columns
      eager_load!
      tables.map do |table_name|
        Table.new(table_name: table_name,
                  tables: tables).invalid_columns
      end.flatten
    end

    def self.eager_load!
      Rails.application.eager_load! if defined?(Rails) && !Rai
    
    def self.foreign_keys
      eager_load!
      tables.map do |table_name|
        Table.new(table_name: table_name,
                  tables: tables).missing_keys
      end.flatten
    end

    def self.invalid_columns
      eager_load!
      tables.map do |table_name|
        Table.new(table_name: table_name,
                  tables: tables).invalid_columns
      end.flatten
    end

    def self.eager_load!
      Rails.application.eager_load! if defined?(Rails) && !Rails.env.test?
    end

    def self.tables
      ActiveRecord::Base.connection.tables - self.ignored_tables
    end

    def self.ignored_tables
      config['exclude_tables'] || []
    end

    def self.config
      @config ||= begin
        config_file = Pathname.new(Rails.root).join('.yeet_dba.yml')

        if File.exist?(config_file)
          YAML.load(File.read(config_file))
        else
          {}
        end
      end
    end