Class: DbValidator::Reporter

Inherits:
Object
  • Object
show all
Defined in:
lib/db_validator/reporter.rb

Instance Method Summary collapse

Constructor Details

#initializeReporter

Returns a new instance of Reporter.



5
6
7
# File 'lib/db_validator/reporter.rb', line 5

def initialize
  @invalid_records = []
end

Instance Method Details

#add_invalid_record(record) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/db_validator/reporter.rb', line 9

def add_invalid_record(record)
  enhanced_errors = record.errors.map do |error|
    field_value = record.send(error.attribute)
    message = error.message
    
    if error.options[:in].present?
      "#{error.attribute} #{message} (allowed values: #{error.options[:in].join(', ')}, actual value: #{field_value.inspect})"
    else
      "#{error.attribute} #{message} (actual value: #{field_value.inspect})"
    end
  end

  @invalid_records << {
    model: record.class.name,
    id: record.id,
    errors: enhanced_errors
  }
end

#generate_reportObject



28
29
30
31
32
33
34
35
# File 'lib/db_validator/reporter.rb', line 28

def generate_report
  case DbValidator.configuration.report_format
  when :json
    generate_json_report
  else
    generate_text_report
  end
end