[ruby-dev:47281] Re: Etc.passwd の挙動について

From: Kazuhiro NISHIYAMA <zn@...>
Date: 2013-04-22 01:14:36 UTC
List: ruby-dev #47281
西山和広です。

At Mon, 15 Apr 2013 13:34:15 +0900,
Akinori MUSHA wrote:
> 
> 一応、
> 
>     Etc.to_enum(:passwd).to_a
> 
> という手はあります。ブロックなしの方は一回最後まで読み切ると rewind す
> る手立てがないのでダメですね。

Enumerator の方も最後までよんでいないものがあると、
よめなくなって困ったことになるようです。

% cat x.rb
require 'etc'
p Etc.to_enum(:passwd).next
p Etc.to_enum(:passwd).next
% ruby -v x.rb
ruby 2.1.0dev (2013-04-21 trunk 40403) [x86_64-linux]
#<struct Etc::Passwd name="root", passwd="x", uid=0, gid=0, gecos="root", dir="/root", shell="/bin/bash">
x.rb:3:in `next': parallel passwd iteration (RuntimeError)
        from x.rb:3:in `<main>'
%


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)

In This Thread

Prev Next