Sha256: f520e3e3711a3a9fa59843b5bdadc39342889b484d7c479e0bc4624a40aa100f

Contents?: true

Size: 901 Bytes

Versions: 10

Compression:

Stored size: 901 Bytes

Contents

# frozen_string_literal: true

require "csv"

module Decidim
  module Verifications
    module CsvCensus
      # 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 readed from the csv file
      #
      # Returns nothing
      class Data
        attr_reader :errors, :values
        def initialize(file)
          @file = file
          @values = []
          @errors = []

          CSV.foreach(@file) do |row|
            process_row(row)
          end
        end

        private

        def process_row(row)
          user_mail = row.first
          if user_mail.present? && user_mail.match?(::Devise.email_regexp)
            values << user_mail
          else
            errors << row
          end
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
decidim-verifications-0.23.6 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.23.5 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.23.4 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.23.3 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.23.2 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.23.1 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.23.1.rc1 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.23.0 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.22.0 app/models/decidim/verifications/csv_census/data.rb
decidim-verifications-0.21.0 app/models/decidim/verifications/csv_census/data.rb