ごとけんです

イテレーターの定義の仕方を教えて下さい。
{|elm| ...} って感じで |elm| の部分を渡す方法が分かりません。 
例えば、クラス変数として配列 @foo を持ってるクラス Foo に
foreach というイテレータを、 ちょうど @foo.each となるように
したいのですがどうしたらいいのでしょうか? 例として以下のコードが
 HaHiHuHeHo をプリントするように、 ### ここ ### というところを
どなたか埋めて下さい。質問ばっかりですみませんがお願いします。

  class Foo
    def initialize
      @foo = ["ha", "hi", "hu", "he", "ho"]
    end

    def foreach
      ### ここ ###
    end
  end

  a = Foo.new
  a.foreach{|i| p i.capitalize}

--
ごとけん@生涯一初心者(;_;)