結論
こんな感じに書くと、Hoge#bar
では期待通りの挙動*1にならないです。
class Hoge def initialize @file = File.open('/path/to/piyo.txt') end def foo @file.each_line do |line| puts line end end def bar @file.each_line do |line| puts line end end end hoge = Hoge.new hoge.foo hoge.bar
なぜか
hoge.foo
によって行数のポインタが最後まで到達してしまっているから。hoge.bar
では最後の行から each_line
がスタートするから。
ハマった
小一時間ハマってしまった。
*1:ファイルの内容が 2回 表示されてほしい