Module: Opencdd::Parcel::CsvWriter
- Defined in:
- lib/opencdd/parcel/csv_writer.rb
Defined Under Namespace
Classes: BuiltSheet
Constant Summary collapse
- DEFAULT_ENCODING =
"UTF-8".freeze
Class Method Summary collapse
- .write_sheet(sheet, entities, target, source_language: SheetEmitter::DEFAULT_SOURCE_LANGUAGE, encoding: DEFAULT_ENCODING, write_bom: false) ⇒ Object
- .write_workbook(database, dir, parcel_id:, source_language: SheetEmitter::DEFAULT_SOURCE_LANGUAGE, encoding: DEFAULT_ENCODING, write_bom: false) ⇒ Object
Class Method Details
.write_sheet(sheet, entities, target, source_language: SheetEmitter::DEFAULT_SOURCE_LANGUAGE, encoding: DEFAULT_ENCODING, write_bom: false) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/opencdd/parcel/csv_writer.rb', line 11 def self.write_sheet(sheet, entities, target, source_language: SheetEmitter::DEFAULT_SOURCE_LANGUAGE, encoding: DEFAULT_ENCODING, write_bom: false) emitter = SheetEmitter.new(source_language: source_language) rows = emitter.emit_data_rows(sheet, entities) data_rows = rows.map { |row| row.drop(1) } write_csv(target, data_rows, encoding: encoding, write_bom: write_bom) target end |
.write_workbook(database, dir, parcel_id:, source_language: SheetEmitter::DEFAULT_SOURCE_LANGUAGE, encoding: DEFAULT_ENCODING, write_bom: false) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/opencdd/parcel/csv_writer.rb', line 19 def self.write_workbook(database, dir, parcel_id:, source_language: SheetEmitter::DEFAULT_SOURCE_LANGUAGE, encoding: DEFAULT_ENCODING, write_bom: false) require "fileutils" FileUtils.mkdir_p(dir) built_sheets = build_sheets(database, parcel_id, source_language) paths = [] built_sheets.each do |built| filename = "#{parcel_id}_#{type_label(built.type)}.csv" path = File.join(dir, filename) write_sheet(built.sheet, built.entities, path, source_language: source_language, encoding: encoding, write_bom: write_bom) paths << path end paths end |