2013-03-20 11 views
5

sto usando https://github.com/zdavatz/spreadsheet versione 0.8.3foglio di calcolo gioiello: non può creare cartella di lavoro vuoto

Ho codice che itera su una collezione e crea un foglio di lavoro nella stessa cartella di lavoro per ogni elemento. Quando la raccolta è vuota, il codice che esegue finisce per assomigliare:

io = StringIO.new 
book = Spreadsheet::Workbook.new 
book.write(io) 

L'ultima riga solleva:

TypeError: can't convert nil into Integer 
    spreadsheet/excel/writer/workbook.rb:636:in `pack' 
    spreadsheet/excel/writer/workbook.rb:636:in `write_window1' 
    spreadsheet/excel/writer/workbook.rb:419:in `write_from_scratch' 
    spreadsheet/excel/writer/workbook.rb:644:in `write_workbook' 
    spreadsheet/writer.rb:12:in `write' 
    spreadsheet/workbook.rb:124:in `write' 

cambiare il mio codice per questo risolve le cose:

io = StringIO.new 
book = Spreadsheet::Workbook.new 
book.create_worksheet if book.worksheets.empty? 
book.write(io) 

Ma Preferirei non dover includere la chiamata a create_worksheet. Le mie domande sono:

a) sto facendo qualcosa di sbagliato nel mio codice?

b) si tratta di un bug nella gemma o è previsto l'arresto anomalo?

+3

Sembra il comportamento previsto. – Linuxios

risposta

3

Ho inviato un'email al manutentore del progetto e hanno indicato che ciò è previsto.