kinder, gentler I/O for Ruby