What's the idiomatic workaround for this sort of thing?
redefine it, something like (not tested)
unless IO::respond_to?(:read)
def IO::read(file, lgth = nil, offset = 0)
Kernel::open(file) do |io|
io.seek(offset) if !offset.zero?
io.read(lgth)
end
end
end