I have a vacuum fluorescent display in my office, and I've been
messing around with it. Now that I've figured out how to communicate
with the serial connection it's time for some fun. Its shortcoming is
its 2 lines of 20 chars. So I naturally wrote a fortune cookie program
for it.

I want to make adding new fortunes easy (and without having to figure
out myself where to force a line break), so I basically need to split
a string (approximately) in half at a word boundary. This is what I
have:

class String
  def halve
    first_half = ''
    second_half = self
    until first_half.length >= length / 2
      match = / /.match(second_half)
      first_half << match.pre_match << ' '
      second_half = match.post_match
    end
    [first_half.strip, second_half]
  end
end

I have a feeling there's a one-line regexp that can do this. Am I
right? If not, is there a better way?