使StringIO适用于IO.foreach

时间:2016-02-16 11:19:47

标签: ruby string io file-descriptor

我想让以下几行有效:

input = StringIO.new
input.write("test\ntest2")
IO.foreach(input) { |line| … }

我知道IO.foreach需要文件说明。我可以将其转换为文件描述符或伪造它,使其以不同的方式工作吗?

1 个答案:

答案 0 :(得分:1)

要在您写完StringIO之后阅读,您需要使用seek将其回滚到开头:

input = StringIO.new
input.write("test\ntest2")
input.seek(0)
input.each_line { |x| p x }
# "test\n"
# "test2"