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
453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 |
# File 'lib/serializer.rb', line 453 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
479 480 481 |
# File 'lib/serializer.rb', line 479 def to_csv @rows.collect{|r| r.join(", ")}.join("\n") end |
#to_spreadsheet ⇒ Spreadsheet::Workbook
Convert to spreadsheet workbook
485 486 487 488 489 490 491 492 493 494 495 496 497 498 |
# File 'lib/serializer.rb', line 485 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 |