Class: OpenTox::Serializer::Spreadsheets
- Inherits:
-
Object
- Object
- OpenTox::Serializer::Spreadsheets
- Defined in:
- lib/serializer.rb
Overview
Serializer for spreadsheet formats
Instance Method Summary collapse
-
#initialize(dataset) ⇒ Spreadsheets
constructor
Create a new spreadsheet serializer.
-
#to_csv ⇒ String
Convert to CSV string.
-
#to_spreadsheet ⇒ Spreadsheet::Workbook
Convert to spreadsheet workbook.
Constructor Details
#initialize(dataset) ⇒ Spreadsheets
Create a new spreadsheet serializer
418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 |
# File 'lib/serializer.rb', line 418 def initialize(dataset) @rows = [] @rows << ["SMILES"] features = dataset.features.keys @rows.first << features @rows.first.flatten! dataset.data_entries.each do |compound,entries| smiles = Compound.new(compound).to_smiles row = Array.new(@rows.first.size) row[0] = smiles entries.each do |feature, values| i = features.index(feature)+1 values.each do |value| if row[i] row[i] = "#{row[i]} #{value}" # multiple values else row[i] = value end end end @rows << row end end |
Instance Method Details
#to_csv ⇒ String
Convert to CSV string
444 445 446 |
# File 'lib/serializer.rb', line 444 def to_csv @rows.collect{|r| r.join(", ")}.join("\n") end |
#to_spreadsheet ⇒ Spreadsheet::Workbook
Convert to spreadsheet workbook
450 451 452 453 454 455 456 457 458 459 460 461 462 463 |
# File 'lib/serializer.rb', line 450 def to_spreadsheet Spreadsheet.client_encoding = 'UTF-8' book = Spreadsheet::Workbook.new sheet = book.create_worksheet(:name => '') sheet.column(0).width = 100 i = 0 @rows.each do |row| row.each do |c| sheet.row(i).push c end i+=1 end book end |