我使用open4 :: background在shell上打开一个进程。 open4 :: background允许我使用任何实现<<,each,read或to_s作为stdx句柄的类。
我目前正在使用String,但每次在stdout上发生写操作时,它都会替换旧值。考虑到接受任何实现某些字符串式函数的类,是否有一个简单的类可以用来创建新的append而不是replace?
我是Ruby的新手,我只是希望插入这部分内容。如果有人可以为此贡献或指向一个简单的现有课程,我会很感激。
有一个线程通过这里的示例实现来解释这个问题:http://www.ruby-forum.com/topic/151316但我认为这对于我现在要做的事情来说有点过于复杂。作为Ruby n00b,如果其他人可以为我按摩该样本,我会感觉更舒服。
感谢。
编辑:
按照Phrogz的要求,这是我希望能够做到的:
app_str = AppendedString
app_str = 'jeff'
app_str = 'walls'
puts app_str
# should display "jeffwalls"
答案 0 :(得分:1)
app_str = AppendedString
app_str = 'jeff'
app_str = 'walls'
这需要覆盖赋值运算符。不幸的是,Ruby不允许覆盖赋值运算符。
答案 1 :(得分:1)
您想要的是使用StringIO
将所有内容作为字符串捕获。
(正如@John所说,你无法捕捉重复的作业,但如果你只是想积累<<
所创造的所有价值,那么就可以了。)