Bonjour,

Je voudrais récupérer des flux RSS à partir d'un URL. Après quelques
recherches sur Internet, je suis tombé sur une librairie très simple que
voici :

# lib/rss_parser.rb

class RssParser
  require 'rexml/document'
  require 'open-uri'
  def self.run(url)
    xml = REXML::Document.new(open(url))
    data = {
      :title    => xml.root.elements['channel/title'].text,
      :home_url => xml.root.elements['channel/link'].text,
      :rss_url  => url,
      :items    => []
    }
    xml.elements.each '//item' do |item|
      new_items = {} and item.elements.each do |e|
        new_items[e.name.gsub(/^dc:(\w)/,"\1").to_sym] = e.text
      end
      data[:items] << new_items
    end
    data
  end
end

En console, tout fonctionne, mais lorsque je l'utilise dans mon
application, j'ai une erreur Timeout::Error :

Timeout::Error (execution expired):
    /usr/lib/ruby/1.8/timeout.rb:54:in `rbuf_fill'
    /usr/lib/ruby/1.8/timeout.rb:56:in `timeout'
    /usr/lib/ruby/1.8/timeout.rb:76:in `timeout'
    /usr/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
    /usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
    /usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
    /usr/lib/ruby/1.8/net/http.rb:2020:in `read_status_line'
    /usr/lib/ruby/1.8/net/http.rb:2009:in `read_new'
    /usr/lib/ruby/1.8/net/http.rb:1050:in `request'
    /usr/lib/ruby/1.8/open-uri.rb:248:in `open_http'
    /usr/lib/ruby/1.8/net/http.rb:543:in `start'
    /usr/lib/ruby/1.8/open-uri.rb:242:in `open_http'
    /usr/lib/ruby/1.8/open-uri.rb:616:in `buffer_open'
    /usr/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
    /usr/lib/ruby/1.8/open-uri.rb:162:in `catch'
    /usr/lib/ruby/1.8/open-uri.rb:162:in `open_loop'
    /usr/lib/ruby/1.8/open-uri.rb:132:in `open_uri'
    /usr/lib/ruby/1.8/open-uri.rb:518:in `open'
    /usr/lib/ruby/1.8/open-uri.rb:30:in `open'
    /lib/rss_parser.rb:7:in `run'
    /app/controllers/pages_controller.rb:155:in `rss'
    (...)

Quelqu'un aurait-il une idée d'où cela pourrait-il venir?

J'utilise Rails 2.1.0, et j'ai effectué des tests en environement de
développement et de production.

Merci
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à