On 19 Oct 2007, at 15:30, Arul hari wrote:

> Dear Friends,
>    I am having the source code like this.
> require 'net/ftp'
>
> ftp = Net::FTP::new("ftp.ruby-lang.org")
> ftp.login("anonymous", "matz / ruby-lang.org")
> ftp.chdir("/pub/ruby")
> tgz = ftp.list("ruby-*.tar.gz").sort.last
> print "the latest version is ", tgz, "\n"
> ftp.getbinaryfile(tgz, tgz)
> ftp.close
>
> while running this code It is not working properly.
> as long as it is simply running,But I am not getting any result.
> After pressing ctrl+c I got the error like this.
> Please anybody clarify my doubts.
> The error is:
>
> /usr/lib/ruby/1.8/net/ftp.rb:211:in `readline': Interrupt
>         from /usr/lib/ruby/1.8/net/ftp.rb:211:in `getline'
>         from /usr/lib/ruby/1.8/net/ftp.rb:221:in `getmultiline'
>         from /usr/lib/ruby/1.8/net/ftp.rb:235:in `getresp'
>         from /usr/lib/ruby/1.8/net/ftp.rb:251:in `voidresp'
>         from /usr/lib/ruby/1.8/net/ftp.rb:176:in `connect'
>         from /usr/lib/ruby/1.8/monitor.rb:238:in `synchronize'
>         from /usr/lib/ruby/1.8/net/ftp.rb:174:in `connect'
>         from /usr/lib/ruby/1.8/net/ftp.rb:136:in `initialize'
>         from net.rb:3:in `new'
>         from net.rb:3
> --  
> Posted via http://www.ruby-forum.com/.
>

Your code works for me, which suggests there was either a problem  
with the ftp server when you tried it or there's something wrong with  
your connection/firewall. Unrelated to your problem above, you'll  
have to make a small change in your dir listing code to get it to  
properly work:

require 'net/ftp'

ftp = Net::FTP::new("ftp.ruby-lang.org")
ftp.login("anonymous", "matz / ruby-lang.org")
ftp.chdir("/pub/ruby")
tgz = ftp.list("ruby-*.tar.gz").map{|l| l.split[8]}.sort.last
print "the latest version is ", tgz, "\n"
ftp.getbinaryfile(tgz, tgz)
ftp.close

Alex Gutteridge

Bioinformatics Center
Kyoto University