Class: DataForge::File::CSV::CSVRecordFileWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/data_forge/file/csv/csv_record_file_writer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(definition) ⇒ CSVRecordFileWriter

Returns a new instance of CSVRecordFileWriter.



12
13
14
15
16
# File 'lib/data_forge/file/csv/csv_record_file_writer.rb', line 12

def initialize(definition)
  @definition = definition
  @name = definition.name
  @fields = definition.field_names
end

Instance Attribute Details

#definitionObject (readonly)

Returns the value of attribute definition.



8
9
10
# File 'lib/data_forge/file/csv/csv_record_file_writer.rb', line 8

def definition
  @definition
end

#fieldsObject (readonly)

Returns the value of attribute fields.



8
9
10
# File 'lib/data_forge/file/csv/csv_record_file_writer.rb', line 8

def fields
  @fields
end

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/data_forge/file/csv/csv_record_file_writer.rb', line 8

def name
  @name
end

Instance Method Details

#closeObject



27
28
29
30
# File 'lib/data_forge/file/csv/csv_record_file_writer.rb', line 27

def close
  @csv_file.close
  FileUtils.move @tempfile_name, definition.file_name
end

#openObject



20
21
22
23
# File 'lib/data_forge/file/csv/csv_record_file_writer.rb', line 20

def open
  @tempfile_name = tempfile_name
  @csv_file = ::CSV.open @tempfile_name, "w", csv_options
end

#write(record) ⇒ Object



34
35
36
# File 'lib/data_forge/file/csv/csv_record_file_writer.rb', line 34

def write(record)
  @csv_file << fields.map { |field| record[field] }
end