Project

General

Profile

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 
 

Back