サイログ。

~雑多な記事置き場~

単体でも配列でも気にせずにイテレータに渡せる方法

Miyakoとかでは、「オブジェクト単体」のときと「オブジェクトの配列」を同じように処理させる時が結構あります。
でも、単体と配列では、モトが違うので、別々の処理を施さなきゃいけない。
そんなんじゃまくさい。

というわけで、こんなモジュールを作ってみました。

module SingleEnumerable
  include Enumerable

  def each
    yield self
  end

  def size
    return 1
  end

  def length
    return 1
  end
end

これをインクルードしたクラスは、単体でも配列でも気にせずに、大抵のイテレータ処理を施すことができるはず。
一度お試しあれ。