So ensure that we're receiving only an IO object so that we can more readily consume a single line, and then iterate until delimiter is met?  The original code uses execpipe when retrieving instances, exposing the pipe's IO to the parser routine, but for the query method executes the command capturing only the output as a String (assumed to be a single package's info), which I believe is why the original parser routine relied on each_line.  I will change this, which will also address your concern about the vague output parameter description.