これつぐです。


[ruby-dev:8446] [REQ] {enumerable, integer, range}.rand
> 西@九大です。

> rand なんかは基本的には builtin の方がいいですが、インスタンスメソッド
> でも使いたいと思う時って、よくありますよね?(あるって言ってー!)

私もあります。


> という事で、
>   Enumerable#rand (欲しー!)
>   Range#rand (もしくは、rand(a,b))
>   Integer#rand (Enum があれば不要だけど、勢い)
> が欲しいです。どうでしょうか?

需要はあると思うんですけど、
これはちょっとやりすぎのような気もします。
どうしてもやるんだったら、
引数によって rand の振る舞いが違うほうがいいような気がします。

こんな感じでしょうか?

alias _rand rand

def rand(arg)
  if arg.kind_of?(Enumerable)
    arg.to_a[_rand(arg.size)]
  else
    _rand(arg)
  end
end