Thanks for the help everyone.  It sounds like trap(:INT) {} will lead
to a solution that I'll like.  This is different from the combination
of getc and rescue that I was using.. something new to learn.  =)

HighLine would definitely be a simpler approach, but if I can do the
extra work and eliminate a dependancy I will.

I'm already thinking of re-implemeting the features of the libraries
that I'm already working with.

Of course, I seem to regularly go over my head.. I guess it's
prompting me to figure out all sorts of interesting problems.