10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/opencdd/parcel/csv_reader.rb', line 10
def self.read(path, meta_class_irdi:, name: nil, col_sep: ",", encoding: DEFAULT_ENCODING)
rows = ::CSV.read(path, col_sep: col_sep, encoding: encoding)
rows = rows.reject { |r| r.nil? || r.all? { |c| c.nil? || c.to_s.strip.empty? } }
meta_code = (meta_class_irdi)
scaffold = Opencdd::Parcel::Sheet.scaffold(
meta_class_irdi: meta_code,
parcel_id: "IMPORT",
)
raw_rows = rows.map { |r| [nil, *r] }
Opencdd::Parcel::Sheet.new(
name: name || File.basename(path.to_s, ".*"),
metadata: scaffold.metadata,
schema: scaffold.schema,
raw_rows: raw_rows,
)
end
|