機略戦記

Maneuver warfare

自分で作ったクラスでmap, with_index, selectなどを使えるようにする

自分で作ったクラスに、組み込みライブラリのEnumerableをインクルードしてあげると、map, with_index,selectと言った便利メソッドが使える様になる。

やりかた

例えば、複数のアイテムを表すItemWithQuantityと言うクラスを作ったとする。
ItemWithQuantity.new(hp_recovery, 3)で「やくそう3つ」を表す。

ItemWithQuantityにEnumerableモジュールをインクルードし、eachを定義してあげる。

すると、map, with_index,selectといったEnumerableに属するメソッドの一部が使えるようになる。

補足:Enumerableに含まれるメソッドの一覧
http://ref.xaio.jp/ruby/classes/enumerable

eachに加えて<=>を定義する事で、sort, maxなどさらに沢山のメソッドが使えるようになるが、それについては今度書く。