From: fujioka Date: 2013-04-12T23:39:17+09:00 Subject: [ruby-dev:47255] Etc.passwd の挙動について xibbarこと藤岡です。 Etc.passwd を使ってみて、面食らったので要望を出しておきます。 現状は、 irb(main):028:0* Etc.passwd => # irb(main):029:0> Etc.passwd => # って感じで、/etc/passwd を1行ずつ読み込んで、 Structで返す仕様になっています。 ブロックを与えると、 irb(main):034:0* Etc.passwd{|pw|p pw} # # って感じで、1行ずつ読み込んで何かできる様になっています。 これが、Ruby的には Etc.passwd.each{|pw|p pw} とかってやれたほうが驚きが少ないと思ったのですが いかがでしょうか。 少なくとも Etc.passwd で1行ずつ読みだしたStructが返ってくるよりも いいかなと思います。 Etc.passwd.to_a とか出来たほうがいいのではないかと思います。 現状、StructのArrayを作る方法もなくて、 pw_ary=[] Etc.passwd{|pw|pw_ary << pw} とかやらなきゃならないです。 どういう仕様にしたらスマートかというあたりまでは 踏み込めていませんが、とりあえず面食らったので 不満を書いてみました。 よろしくお願いします。