From: Akinori MUSHA Date: 2007-10-10T13:16:25+09:00 Subject: [ruby-dev:32007] Re: securerandom.rb for 1.8 --pgp-sign-Multipart_Wed_Oct_10_13:13:56_2007-1 Content-Type: text/plain; charset=ISO-2022-JP At Tue, 9 Oct 2007 20:09:21 +0900, Tanaka Akira wrote: > 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 は別名としてありうると思います。  bytes と呼ぶものを string とも呼べるいうのはやはりよくないし、 binary_string と言うくらいなら random_bytes でいいので撤回します。 > hex と base64 が短いのは意図的です。これらを使いましょうとい > う推奨を示しています。  たくさんの箇所で使うものでもなさそうなので長くてもいいと思い ますが、誤解は生じないと思うので納得しました。  String#hexencode や String#base64encode が組み込みであっても いい気がしますが、それは別の話。 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "Different eyes see different things, Different hearts beat on different strings -- But there are times for you and me when all such things agree" --pgp-sign-Multipart_Wed_Oct_10_13:13:56_2007-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQBHDFGEkgvvx5/Z4e4RAtNbAJ0cCBL9e4a5McI+Mv9doAuktr4l2gCeJjIS 8hdsS7IWRVmmrbW7WknnCDA= =9qk3 -----END PGP SIGNATURE----- --pgp-sign-Multipart_Wed_Oct_10_13:13:56_2007-1--