あおきです。

  In mail "[ruby-list:17742] maillib UIDL"
    "Kikutani, Makoto" <kikutani / Galaxy.net> wrote:

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

ここで階層構造が違うのが原因でしょう。正しくは

Net
  POP3Session
    POPMail
  POP3Command

です。これが原因でPOP3Commandとは別のPOP3Session::POP3Commandが
定義されていて、なにも変わらないんでないかと思います。

ちなみに、クラス(定数)は単にprivateの後に書くだけでは
privateにはできないです。


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

添付パッチでどうですか?


追伸 みなさまこの前は妙なsubjectにしてしまってすみませんでした。
-------------------------------------------------------------------
あおきみねろう(青木峰郎)

Index: pop.rb =================================================================== RCS file: /home/aamine/cvs/maillib/pop.rb,v retrieving revision 1.9 diff -u -r1.9 pop.rb --- pop.rb 1999/10/13 07:13:22 1.9 +++ pop.rb 1999/10/16 07:14:26 @@ -167,6 +167,10 @@ @deleted end + def uidl + @proto.uidl @num + end + end end # POP3Session @@ -219,6 +223,11 @@ class POP3Command < Command + def initialize( sock ) + @uidl = nil + super + end + =begin @@ -323,10 +332,18 @@ def dele( num ) - @socket.writeline( sprintf( 'DELE %s', num ) ) + @socket.writeline( 'DELE ' + num.to_s ) check_reply( SuccessCode ) end + + def uidl( num ) + @socket.writeline( 'UIDL ' + num.to_s ) + rep = check_reply( SuccessCode ) + uid = rep.msg.split(' ')[1] + + uid + end private Index: session.rb =================================================================== RCS file: /home/aamine/cvs/maillib/session.rb,v retrieving revision 1.10 diff -u -r1.10 session.rb --- session.rb 1999/10/13 07:13:22 1.10 +++ session.rb 1999/10/16 07:14:26 @@ -71,7 +71,9 @@ proto_initialize @address = addr @port = port if port + @active = false + @pipe = nil end class << self