This commit is contained in:
simon lehericey 2021-11-26 13:13:39 +01:00
parent 5a0fb6237f
commit c4cde500ce
2 changed files with 17 additions and 1 deletions

View file

@ -215,7 +215,7 @@ module Administrateurs
else
file = group_csv_file.read
base_encoding = CharlockHolmes::EncodingDetector.detect(file)
groupes_emails = ACSV::CSV.new(file.encode("UTF-8", base_encoding[:encoding], invalid: :replace, replace: ""), headers: true, header_converters: :downcase)
groupes_emails = ACSV::CSV.new_for_ruby3(file.encode("UTF-8", base_encoding[:encoding], invalid: :replace, replace: ""), headers: true, header_converters: :downcase)
.map { |r| r.to_h.slice('groupe', 'email') }
groupes_emails_has_keys = groupes_emails.first.has_key?("groupe") && groupes_emails.first.has_key?("email")

View file

@ -0,0 +1,16 @@
require 'csv'
# PR : https://github.com/wvengen/ruby-acsv/pull/3
module ACSV
class CSV < ::CSV
def self.new_for_ruby3(data, options = {})
options[:col_sep] ||= ACSV::Detect.separator(data)
# because of the Separation of positional and keyword arguments in Ruby 3.0
# (https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/)
# instead of
# super(data, options)
# we do
::CSV.new(data, **options)
end
end
end