Class: ActiveRecordCSVImporter::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord_csv_importer/report.rb

Overview

The Report you get back from an import.

  • It has a status (pending, invalid_csv_file, invalid_header, in_progress, done, aborted)

  • It lists out missing columns

  • It reports parser_error

  • It lists out (created / updated) * (success / failed) records

  • It provides a human readable message

Instance Method Summary collapse

Instance Method Details

#aborted!Object



73
74
75
76
# File 'lib/activerecord_csv_importer/report.rb', line 73

def aborted!
  self.status = :aborted
  self
end

#aborted?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/activerecord_csv_importer/report.rb', line 46

def aborted?
  status == :aborted
end

#done!Object



68
69
70
71
# File 'lib/activerecord_csv_importer/report.rb', line 68

def done!
  self.status = :done
  self
end

#done?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/activerecord_csv_importer/report.rb', line 42

def done?
  status == :done
end

#in_progress!Object



63
64
65
66
# File 'lib/activerecord_csv_importer/report.rb', line 63

def in_progress!
  self.status = :in_progress
  self
end

#in_progress?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/activerecord_csv_importer/report.rb', line 38

def in_progress?
  status == :in_progress
end

#invalid_csv_file!Object



83
84
85
86
# File 'lib/activerecord_csv_importer/report.rb', line 83

def invalid_csv_file!
  self.status = :invalid_csv_file
  self
end

#invalid_csv_file?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/activerecord_csv_importer/report.rb', line 54

def invalid_csv_file?
  status == :invalid_csv_file
end

#invalid_header!Object



78
79
80
81
# File 'lib/activerecord_csv_importer/report.rb', line 78

def invalid_header!
  self.status = :invalid_header
  self
end

#invalid_header?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/activerecord_csv_importer/report.rb', line 50

def invalid_header?
  status == :invalid_header
end

#messageObject



88
89
90
# File 'lib/activerecord_csv_importer/report.rb', line 88

def message
  message_generator.call(self)
end

#pending!Object



58
59
60
61
# File 'lib/activerecord_csv_importer/report.rb', line 58

def pending!
  self.status = :pending
  self
end

#pending?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/activerecord_csv_importer/report.rb', line 34

def pending?
  status == :pending
end

#progress_percentageObject



25
26
27
28
# File 'lib/activerecord_csv_importer/report.rb', line 25

def progress_percentage
  return 0 if total_count.zero?
  (completed_count.to_f / total_count * 100).round
end

#success?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/activerecord_csv_importer/report.rb', line 30

def success?
  done? && invalid_rows.empty?
end