Pracuję z obiektem IO (trochę tekstem wyjściowym STDOUT
) i próbuję przekonwertować go na ciąg znaków, aby umożliwić przetwarzanie tekstu. Chciałbym zrobić coś takiego:Jak przekonwertować obiekt IO na ciąg w 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
Próbowałem kilka rzeczy i zdobyć kilka błędów:
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
Czytałem za pomocą metod klasy IO, i nie mogę dowiedzieć się, jak manipulować danymi w tym obiekcie. Jakieś sugestie?
„IOError: nie otwarty do czytania” powinien być właściwy trop. Spróbuj wyszukać tego błędu. –
Nie powiedziałeś wyraźnie, co próbujesz zrobić. Wyjaśnij, co chcesz zrobić, a my prawdopodobnie zapewnimy Ci lepszy sposób dotarcia. Jak otrzymujesz swój tekst STDOUT? –
Dzięki, @tinMan. Przepraszam za brak jasności - to odzwierciedlenie mojego zamieszania. W końcu rozwiązałem to, kierując STDOUT na obiekt StringIO. – MothOnMars