咳といいます。

ruby-dev の方で一時期話題になっていた eRuby を実装してみました。

  http://www2a.biglobe.ne.jp/~seki/ruby/erb.rb … 本体
  http://www2a.biglobe.ne.jp/~seki/ruby/enumre.rb … ライブラリ
  http://www2a.biblobe.ne.jp/~seki/ruby/erb.html … メモ

です。

HTMLの文書や定型文の作成などに便利そうです。
お目汚しにどうぞ。

以下に Web ページからのメモを載せます。

-- -- -- 
                                    erb.rb
                                       
   ruby-devメーリングリストの [ruby-dev:5301], [ruby-dev:5354],
   [ruby-dev:5376] などで紹介された ePerl風のeRubyの実装の一つです。
   
eRubyとは

   おおざっぱにいうと ePerl風に、文書に <% ruby scriptの切れ端 %> といった
   タグを 仕込んでそれをスクリプトとして実行し、動的に変化する文書を作るも
   のです。 タグ以外の部分はそのまま印字されます。 ヒアドキュメントがプロ
   グラムの中に文書を持っているのに対し、 eRubyではドキュメントの中にプロ
   グラムが入っている感じです。 定型文書やCGIなどの便利そうです。
     * ヒアドキュメント … スクリプトの中に文書が入ってる
     * eRuby … 文書の中にスクリプトが入ってる (ヒアスクリプト!?)
       
   ruby script の切れ端は個々に解釈されるのではなく、 文書全体で一つのスク
   リプトとして解釈されます。 ですから、次のようなものも書けてなかなかかっ
   こ良いです。
   
<DL>
<% ENV.each { |k, v| %>
<DT><%= k %> <DD><%= v %>
<% } %>
</DL>
     _________________________________________________________________
   
ERbとは

   ERbクラスは eRuby の実装の一つです。 配列に対するパターンマッチングをす
   るモジュール enumre.rb の試験用に書かれました。
   
  タグ
  
   ERb で使えるタグは次の三つです。 <% , <%= , <%# , の後と、 %>の前に空白
   が入っているのに注意!
   
   '<% ' スクリプト ' %>'
          スクリプトとして解釈します。
          
   '<%= ' 値 ' %>'
          print 値します。
          
   '<%# ' ... ' %>'
          コメント。何もしません。
          
  メソッド
  
   ERb はソースを String として与えて生成します。 そのまま実行し、標準出力
   に印字することと、 実行結果を文字列として取り出すことが出来ます。 また
   ソースを Ruby scirpt に変換した結果を見ることもできます。
   
   new(文字列)
          ERbを生成する。
          
   run([binding])
          実行して、結果を標準出力に印字します。 実行する環境 binding を指
          定しないとTOPLEVEL_BINDINGで実行されます。
          
   result([binding])
          実行して、結果を文字列として取り出します。 実行する環境 binding
          を指定しないとTOPLEVEL_BINDINGで実行されます。
          
   src
          変換した Ruby script を返します。
     _________________________________________________________________
   
erb.rb

   erb.rb は単体で実行すると、引数のファイルを eRuby 文書として解釈し、 実
   行結果、あるいは変換したRuby scriptを(-xオプション) 印字します。
     _________________________________________________________________
   
さいごに

   erb.rbはenumre.rbの試験用に書かれました。 このため冗長な部分が多く、起
   動も遅いです。 専用に書き直せばもっと効率の良い気の効いたものが出来ると
   思います。 だれか作って下さいな。
     _________________________________________________________________
   

-- -- --
* Known bug: Ruby 1.2.3 では "\" を含むファイルを印字するときに
             異常動作することがあります。