What's a reasonable way to read an entire text file as a single string?

I am sure this is an easy one; I just couldn't find the answer immediately from Google.

I know I could do this (right?):

text = ""
File.open(path).each_line do |line|
    text += line
end

# Do something with text

But that seems a bit excessive, doesn't it? Or is that the way one would do it in Ruby?


Solution 1:

IO.read() is what you're looking for.
File is a subclass of IO, so you may as well just use:

text = File.read(path)

Can't get more intuitive than that.

Solution 2:

What about IO.read()?

Edit: IO.read(), as an added bonus, closes the file for you.