Class: See5::InputFileWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/see5/input_file_writer.rb

Overview

Writes names and data files suitable for See5, Cubist, or GritBot.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data:, schema: nil, names_io: nil, data_io: nil) ⇒ InputFileWriter

Returns a new instance of InputFileWriter.



13
14
15
16
17
18
# File 'lib/see5/input_file_writer.rb', line 13

def initialize(data:, schema: nil, names_io: nil, data_io: nil)
  @data = data
  @schema = schema # TODO: automatic schema from data objects' attributes
  @names_io = names_io
  @data_io = data_io
end

Class Method Details

.write_files(data:, schema: nil, names_io: nil, data_io: nil) ⇒ Object



8
9
10
11
# File 'lib/see5/input_file_writer.rb', line 8

def self.write_files(data:, schema: nil, names_io: nil, data_io: nil)
  new(data: data, schema: schema, names_io: names_io, data_io: data_io)
    .write_files
end

Instance Method Details

#write_data_fileObject



32
33
34
35
36
37
38
# File 'lib/see5/input_file_writer.rb', line 32

def write_data_file
  # TODO: missing or N/A
  @data.each do |record|
    data_io.write(row(record))
    data_io.write("\n")
  end
end

#write_filesObject



20
21
22
23
24
25
26
# File 'lib/see5/input_file_writer.rb', line 20

def write_files
  write_names_file
  write_data_file

  names_io.close
  data_io.close
end

#write_names_fileObject



28
29
30
# File 'lib/see5/input_file_writer.rb', line 28

def write_names_file
  names_io.write(@schema.names_file_contents)
end