ruby 1.8 compatible