Backport #3831
ruby 1.9.1-p430 で、Net::Telnet の login が undefined method となり実行できない
Description
=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 アドレス」、「ユーザ」に適切な値を入れて実行し
ます。
#!/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
[結果]
ruby-1.9.1-p430 で行った結果です。
$ 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)
[期待する結果]
ruby-1.9.1-p378 で行った結果です。
$ ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32]
$ ruby t.rb
login ...done
closing ...done
=end
Related issues
Updated by erikh (Erik Hollensbe) over 10 years ago
=begin
Could not replicate this on 1.9.2 with the script provided.
=end
Updated by jeremyevans0 (Jeremy Evans) over 1 year ago
- Status changed from Open to Closed
- Description updated (diff)