Module: ActiveRecord::Lint

Extended by:
Lint
Included in:
Lint, Scanner
Defined in:
lib/active_record/lint/reporter.rb,
lib/active_record/lint/pairs.rb,
lib/active_record/lint.rb

Defined Under Namespace

Classes: MissingForeignKey, MissingIndex, MissingTable, Pair, Reporter, TableColumnPair, TableIndexPair, TableKeyPair

Instance Method Summary collapse

Instance Method Details

#load_models(rails_root) ⇒ Object



5
6
7
8
9
10
# File 'lib/active_record/lint.rb', line 5

def load_models(rails_root)
  pattern = File.join(rails_root, "app", "models", "*.rb")
  Dir.glob(pattern){|file|
    load( file )
  }
end

#missing_indexes(options = {}) ⇒ Object



21
22
23
24
# File 'lib/active_record/lint.rb', line 21

def missing_indexes(options = {})
  load_models(options[:rails_root] || RAILS_ROOT)
  Scanner.new(options[:connection] || ActiveRecord::Base.connection).missing_indexes
end

#unload_modelsObject



12
13
14
15
16
17
18
19
# File 'lib/active_record/lint.rb', line 12

def unload_models
  models = ActiveRecord::Base.send :class_variable_get, :@@subclasses
  models = models.keys - [ActiveRecord::Base]
  models.map(&:name).each do |name|
    Object.send :remove_const, name unless name.nil? or name.empty?
  end
  ActiveRecord::Base.send :class_variable_set, :@@subclasses, {}
end