module SimpleDataValidator

Constants

DEFAULT_REPORT_NAME
VERSION

Public Class Methods

validate_all_data(report_name: DEFAULT_REPORT_NAME) click to toggle source
# File lib/simple_data_validator.rb, line 6
def self.validate_all_data(report_name: DEFAULT_REPORT_NAME)
  CSV.open(report_name, 'wb') do |csv|
    ActiveRecord::Base.descendants.each do |model|
      begin
        invalid_records = model.select(&:invalid?)
        csv << [model, [invalid_records.count, 'invalid records found'].join(' ')]
        invalid_records.each do |record|
          begin
            csv << ['', ['id=',record.id].join, record.errors.full_messages.to_sentence]
          rescue => e
            csv << ['', ['id=',record.id].join, e.message]
            next
          end
        end
      rescue => e
        csv << [model, e.message]
        next
      end
    end
  end
end