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.



8
9
10
# File 'lib/db_validator/reporter.rb', line 8

def initialize
  @invalid_records = []
end

Instance Method Details

#add_invalid_record(record) ⇒ Object



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

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: #{format_value(field_value)})"
    end
  end

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

#generate_reportObject



31
32
33
34
35
36
37
38
# File 'lib/db_validator/reporter.rb', line 31

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