ところで rope ライブラリって本当に役に立つもんなんでしょうか。rope は結合が早い、ということで、試しに erb の出力バッファを rope にしたものを作ってみました。通常版の erb では String#concat で結合しているのできっと早くなります。
一度に結合する文字列がかなり長い (12000 バイト) 以下のようなコードでは、通常版が 5.0 秒、rope 版が 0.8 秒になりました。
100.times do |i| ERB.new("<% 100.times { %>" + "foobarbazqux" * 1000 + "<% } %>").result end
けれど、一度に結合する文字列が短い (120 バイト) 以下のようなコードでは、通常版が 1.9 秒、rope 版が 3.6 秒になりました。
10000.times do |i| ERB.new("<% 100.times { %>" + "foobarbazqux" * 10 + "<% } %>").result end
で、rails などで使われる現実的な erb スクリプトで多いのは明らかに後者の場合で、erubis のベンチマークでも rope 版は通常版より 2 倍くらい遅くなります。だめじゃん。