Never create Ruby strings longer than 23 characters
Unicode of course takes up more space and fills up your buffer sooner.  Looks like the jump happens after 8 chars.<p><pre><code>  Benchmark.bm do |bench|
    run("と", bench)
    run("がと", bench)
    run("りがと", bench)
    run("ありがと", bench)
    run("ありがとあ", bench)
    run("ありがとあり", bench)
    run("ありがとありが", bench)
    run("ありがとありがと", bench)
    run("ありがとありがとあ", bench)
    run("ありがとありがとあり", bench)
    run("ありがとありがとありと", bench)
    run("ありがとありがとありがと", bench)
  end

               user     system      total        real
  2  chars  0.210000   0.000000   0.210000 (  0.212420)
  3  chars  0.200000   0.000000   0.200000 (  0.199957)
  4  chars  0.200000   0.000000   0.200000 (  0.199356)
  5  chars  0.200000   0.000000   0.200000 (  0.199142)
  6  chars  0.200000   0.000000   0.200000 (  0.198047)
  7  chars  0.190000   0.000000   0.190000 (  0.198984)
  8  chars  0.190000   0.000000   0.190000 (  0.196917)
  9  chars  0.250000   0.000000   0.250000 (  0.245808)
  10 chars  0.240000   0.000000   0.240000 (  0.247153)
  11 chars  0.250000   0.000000   0.250000 (  0.248083)
  12 chars  0.250000   0.000000   0.250000 (  0.247753)
  13 chars  0.240000   0.000000   0.240000 (  0.250674)
</code></pre>
Grabbed those unicode chars from <a href="http://blog.trydionel.com/2010/03/23/some-unicode-tips-for-ruby/" rel="nofollow">http://blog.trydionel.com/2010/03/23/some-unicode-tips-for-r...</a>  no clue what that says.