When a block is given and the argument is an IO-like object, it may not reach its end after exiting the each method
You mean if the block interrupts the processing with break, return or raise? Maybe it should close it in those cases (I think it still should), but for the normal case it should definitely close the IO when exiting normally.
CSV.parse expects a String as the input
This is incorrect. CSV methods expect a String or an IO.
Is there information anywhere about where to file issues? I find it quite inconvenient for users to have to move issues here and there... An issue filed on github recently had a comment to file it here, now here is the contrary...