Sto lavorando con un oggetto IO (un po 'di testo di output STDOUT
) e sto provando a convertirlo in una stringa in modo da poter eseguire un po' di elaborazione del testo. Mi piacerebbe fare qualcosa di simile:Come posso convertire un oggetto IO in una stringa in Ruby?
my_io_object = $stdout
#=> #<IO:<STDOUT>>
my_io_object.puts('hi') #note: I know how to make 'hi' into a string, but this is a simplified example
#=>hi
my_io_object.to_s
ho provato un paio di cose e ottenuto alcuni errori:
my_io_object.read
#=> IOError: not opened for reading
my_io_object.open
#=> NoMethodError: private method `open' called for #<IO:<STDOUT>>
IO.read(my_io_object)
#=> TypeError: can't convert IO into String
che ho letto attraverso i metodi della classe IO, e non posso capire come manipolare i dati in quell'oggetto. Eventuali suggerimenti?
"IOError: non aperto per la lettura" dovrebbe essere un indizio appropriata. Prova a cercare il suddetto errore. –
Non hai detto chiaramente cosa stai cercando di fare. Spiega cosa vuoi fare e probabilmente possiamo darti un modo migliore per arrivarci. Come stai ottenendo il tuo testo STDOUT? –
Grazie, @theTinMan. Mi scuso per la mancanza di chiarezza - è un riflesso della mia confusione. Ho finito per risolvere questo indirizzando STDOUT a un oggetto StringIO. – MothOnMars