After the first iteration of nin_file.each
the stream of dev_id_file
is empty:
dev_id_file.each do |dev_line|
puts "1 => #{dev_line}"
end
dev_id_file.each do |dev_line|
puts "2 => #{dev_line}"
end
Outputs:
1 => line 1 file 2
1 => line 2 file 2
1 => line 3 file 2
To have it work every time, you need to do it over an array:
nin_file = File.readlines"file1.txt"
dev_id_file = File.readlines "file2.txt"
nin_file.each do |nin_line|
dev_id_file.each do |dev_line|
nin_line.delete!("\r\n")
puts "#{nin_line} => #{dev_line}"
end
end
Outputs:
line 1 file 1 => line 1 file 2
line 1 file 1 => line 2 file 2
line 1 file 1 => line 3 file 2
line 2 file 1 => line 1 file 2
line 2 file 1 => line 2 file 2
line 2 file 1 => line 3 file 2
line 3 file 1 => line 1 file 2
line 3 file 1 => line 2 file 2
line 3 file 1 => line 3 file 2