Backport #3831
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
=begin 濱野と申します。 ruby-list:47391 からはじまるスレッドで尋ねさせて頂いた Ruby 1.9.1-p430における Net::Telnet における不具合について報告させて頂 きます。 Net::Telnet を使っているプログラムを ruby-1.9.1-p430 で実行してみ たところ、Net::Telnet の login メソッドを呼ぼうとしたところで、 undefined method と言われてしまいました。 原因は、どうやら下記のようです。 * Net::Telnet は、SimpleDelegator クラスを継承している。 * SimpleDelegator クラスを継承したクラスでは、メソッドの追加がで きなくなった(*1)。 * よって、login が無いと言われてしまう。 (*1) http://emasaka.blog65.fc2.com/blog-entry-780.html 申し分けございませんが、ご対応願えないでしょうか。 以下、もう少し詳細に述べます。 [再現方法] 以下のプログラムを、「IP アドレス」、「ユーザ」に適切な値を入れて実行し ます。 <pre> #!/usr/bin/env ruby require 'net/telnet' c = Net::Telnet.new("Host" => "IP アドレス", "Timeout" => 120) print("login ...") c.login("ユーザ") puts("done") print("closing ...") c.close() puts("done") # t.rb ends here </pre> [結果] ruby-1.9.1-p430 で行った結果です。 <pre> $ ruby -v ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mswin32] $ ruby t.rb login ...t.rb:7:in `<main>': undefined method `login' for #<TCPSocket:0xe3be20> (NoMethodError) </pre> [期待する結果] ruby-1.9.1-p378 で行った結果です。 <pre> $ ruby -v ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32] $ ruby t.rb login ...done closing ...done </pre> =end