Ruby readline falha se o processo for iniciado com argumentos

Estou tendo o problema mais estranho. Este código abaixo funciona bem:

require 'json'
require 'net/http'
h = Net::HTTP.new("localhost", 4567) 
while(l = gets.chomp!)
   res = h.post("/api/v1/service/general",l)
   puts res.body
end

No entanto, com a pequena modificação de obter host / porta a partir de parâmetros:

require 'json'
require 'net/http'
h = Net::HTTP.new(ARGV[0], ARGV[1]) 
while(l = gets.chomp!)
   res = h.post("/api/v1/service/general",l)
   puts res.body
end

.. e começando comruby service.rb localhost 4567 ...

Eu recebo este erro:

service.rb:4:in `gets': No such file or directory - localhost (Errno::ENOENT)

Usando ruby 1.9.2p0 no Ubuntu 11.04

questionAnswers(2)

yourAnswerToTheQuestion