From: Tanaka Akira Date: 2007-10-09T20:09:21+09:00 Subject: [ruby-dev:31992] Re: securerandom.rb for 1.8 In article <86k5pwinco.knu@iDaemons.org>, "Akinori MUSHA" writes: >  いいと思います。ライブラリ名も明示的で納得できます。ただ、 > メソッド名に random_ が付いたり付かなかったりする点が気になり > ます。 > >  ruby-dev の議論は読んだんですが、メソッド名が決まった経緯は > 追い切れませんでした。こういうのはいまいちでしょうか。 > > random_number(i) -> integer > random_number(f=1.0) -> float > random_bytes(n) -> binary_string / string > hex(n) -> hex_string > base64(n) -> base64_string random_number は rand 互換で、SecureRandom が適切なケースで rand を使っていた、という場合に機械的に書き換えられるように、 という意図です。でもそんなにお薦めではなく、hex や base64 を 使ってほしいので長い名前になっています。 integer はあっていいかもしれませんが、用途はなんというか session id とかよりはもっと専門的なものになる気がします。 見識があるひとに必要性を説かれてからで遅くないように思います。 float は (上記の書き換え以外では) ちょっと用途が思い当たりま せん。 random_bytes は OpenSSL::Random.random_bytes に由来します。 bytes にしようかと考えたこともありますが、[ruby-dev:31515] のように IO#bytes と Random#bytes で違うのでどうしたものかなぁ と思いつつ、random_bytes 自体はそんなに使いやすくなくてもい いか、ということでそのままになっています。 binary_string, string は別名としてありうると思います。 hex と base64 が短いのは意図的です。これらを使いましょうとい う推奨を示しています。 -- [田中 哲][たなか あきら][Tanaka Akira]