class IMissValidator::Inspector

Attributes

results[R]

Public Class Methods

new(models_path, inspectors = []) click to toggle source
# File lib/i_miss_validator/inspector.rb, line 6
def initialize(models_path, inspectors = [])
  @models_path = models_path
  @inspectors = inspectors
  @results = []
end

Public Instance Methods

inspect() click to toggle source
# File lib/i_miss_validator/inspector.rb, line 24
def inspect
  models.each do |model|
    begin
      model.columns
    rescue
      puts "No schema in model class #{model.to_s}"
      next
    end

    problems = @inspectors.map do |inspector|
      inspector.inspect(model)
    end

    @results << {
      model: model.to_s,
      problems: problems.flatten.compact.group_by {|pb| pb[:column] }
    }
  end
end
models() click to toggle source
# File lib/i_miss_validator/inspector.rb, line 12
def models
  Dir.glob(File.join(@models_path, "**", "*.rb")).sort.each do |filename|
    begin
      Kernel.require_dependency filename
    rescue
      puts "Not a class #{filename}"
    end
  end

  ActiveRecord::Base.descendants.sort_by(&:name)
end