I may have missed it, but I didn't see this solution:

require 'enumerator'
"Hello world!\n".enum_for(:each_byte).inject($stdout){|res, b| res << b.chr}

Which in 1.9 looks much better:

"Hello world!\n".each_char.inject($stdout){|res, c| res << c}

Stefano