Любая идея, почему следующее простое выражение длится так долго в IRB:
irb(main):003:0> res='a'*(10**6)
Оно выполняется за несколько минут до завершения.
Принимая во внимание, что добавление того же выражения к методу put метода fE является мгновенным:
irb(main):003:0> puts('a'*(10**6))