Class: Decidim::Verifications::CsvCensus::Data

Inherits:
Object
  • Object
show all
Defined in:
decidim-verifications/app/models/decidim/verifications/csv_census/data.rb

Overview

A data processor for get emails data form a csv file

Enable this methods:

  • .error with an array of rows with errors in the csv file

  • .values an array with emails read from the csv file

Returns nothing

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file) ⇒ Data

Returns a new instance of Data.



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'decidim-verifications/app/models/decidim/verifications/csv_census/data.rb', line 19

def initialize(file)
  @file = file
  @values = []
  @errors = []
  @column_count = nil

  CSV.foreach(@file, encoding: "BOM|UTF-8") do |row|
    process_row(row)
    @column_count ||= row.size
  end

  @errors << I18n.t("decidim.verifications.errors.wrong_number_columns", expected: 1, actual: @column_count) if @column_count && @column_count > 1
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



17
18
19
# File 'decidim-verifications/app/models/decidim/verifications/csv_census/data.rb', line 17

def errors
  @errors
end

#fileObject (readonly)

Returns the value of attribute file.



17
18
19
# File 'decidim-verifications/app/models/decidim/verifications/csv_census/data.rb', line 17

def file
  @file
end

#valuesObject (readonly)

Returns the value of attribute values.



17
18
19
# File 'decidim-verifications/app/models/decidim/verifications/csv_census/data.rb', line 17

def values
  @values
end

Instance Method Details

#countObject



33
34
35
# File 'decidim-verifications/app/models/decidim/verifications/csv_census/data.rb', line 33

def count
  @column_count || 0
end