ちょっとUIDLが欲しくなったので、自分のソースに

class POP3Session
  class POP3Command
    def uidl
      @socket.writeline( 'UIDL' )
      check_reply( SuccessCode )

      arr = []
      @socket.read_pendlist do |line|
        num, id = line.split( / +/o )
        arr[ num.to_i ] = id
      end

      return arr
    end
  end

  class POPMail
    attr :num
  end
end

なんてやりました。前半のPOP3Commandの追加定義は自明として、
後半のPOPMailのほうは、あるメッセージのPOPサーバ上のインデックスを
知りたいということです。それがわかれば、対応するUIDLを、uidlメソッド
の返すarrayで取れると。

しかし、実際には class POPMail が class POP3Session の private
になってるのでうまく行きません。それにPOPサーバのインデックス
なんて生情報をユーザに見せるのはどうもかっこよくない。

というわけで、uidlメソッドはどう実装するのが賢いでしょうか
という質問です。


-- 
人生を背負い投げ

菊谷 誠(Kikutani Makoto)  kikutani / galaxy.net