Строковый класс, который конвертирует все замены в concats в Ruby? - PullRequest
0 голосов
/ 27 января 2012

Я использую open4 :: background, чтобы открыть процесс на оболочке. open4 :: background позволяет мне использовать любой класс, который реализует <<, each, read или to_s как дескриптор stdx. </p>

В настоящее время я использую строку, но каждый раз, когда происходит запись на стандартный вывод, она заменяет старое значение. Есть ли простой класс, который я могу использовать для добавления новых записей вместо замены, учитывая принятие любого класса, который реализует определенные строковые функции?

Я новичок в Ruby, и я просто надеюсь подключить эту часть. Если кто-то может внести свой вклад или указать мне на простой существующий класс для этого, я был бы признателен.

Здесь есть нить, объясняющая это с использованием примера: http://www.ruby -forum.com / topic / 151316 но я думаю, что это слишком сложно для того, что я сейчас хочу сделать , Как Ruby n00b, я бы чувствовал себя более комфортно, если бы кто-то другой мог сделать мне этот образец.

Спасибо.

EDIT:

По просьбе Phrogz, вот что я хочу сделать:

app_str = AppendedString
app_str = 'jeff'
app_str = 'walls'
puts app_str
# should display "jeffwalls"

Ответы [ 2 ]

1 голос
/ 27 января 2012

То, что вы хотите, это использовать StringIO для захвата всего содержимого в виде строки для вас.

(Как говорит @Джон, повторное присваивание невозможно поймать, но если вы просто хотите накапливать все значения, созданные <<, тогда это будет сделано.)

1 голос
/ 27 января 2012
app_str = AppendedString
app_str = 'jeff'
app_str = 'walls'

Это потребует переопределения оператора присваивания.К сожалению, Ruby не позволяет переопределить оператор присваивания.

...