module ConsistencyFail

Constants

VERSION

Public Class Methods

run() click to toggle source
# File lib/consistency_fail.rb, line 9
def self.run
  models = ConsistencyFail::Models.new($LOAD_PATH)
  models.preload_all

  reporter = ConsistencyFail::Reporter.new

  success = true

  introspector = ConsistencyFail::Introspectors::ValidatesUniquenessOf.new
  problems = problems(models.all, introspector)
  reporter.report_validates_uniqueness_problems(problems)
  success &&= problems.empty?

  introspector = ConsistencyFail::Introspectors::HasOne.new
  problems = problems(models.all, introspector)
  reporter.report_has_one_problems(problems)
  success &&= problems.empty?

  introspector = ConsistencyFail::Introspectors::Polymorphic.new
  problems = problems(models.all, introspector)
  reporter.report_polymorphic_problems(problems)
  success &&= problems.empty?
  
  success
end

Private Class Methods

problems(models, introspector) click to toggle source
# File lib/consistency_fail.rb, line 37
def self.problems(models, introspector)
  models.map do |m|
    [m, introspector.missing_indexes(m)]
  end.reject do |m, indexes|
    indexes.empty?
  end
end