class FriendList
include Enumerable
def initialize(*friends)
@friends = friends
end
def each
for v in @friends
yield v
end
end
end
Enumerable を include して each メソッドを定義すると、以下のようにmapやfindメソッドを使用できるようになる。
friends = FriendList.new('Alice', 'Bob', 'Charlie')
friends.map { |v| v.upcase }
=> ["ALICE", "BOB", "CHARLIE"]
friends.find { |v| /b/ === v }
=> "Bob"