Journal du Net > Développeur  > Client Web >  Client Web > Pratiques > Lire un flux RSS avec Ruby on Rails
Pratique
 
03/10/2007

Lire un flux RSS avec Ruby on Rails

Intégrer des données issues d'un flux RSS dans un site Web avec le langage orienté objets Ruby. Rien de plus simple. Suivez le guide.
  Envoyer Imprimer  

 
En savoir plus
 
 
 

Intégrer des données issues d'un flux RSS dans un site Web avec le langage orienté objets Ruby. Rien de plus simple. Suivez le guide.

Lecture du flux

Commençons par ajouter les bibliothèques utilisées :

require 'rss'
require 'open-uri'

Voici un exemple de code qui va récupérer les informations dans le fichier RSS et préparer une chaine pour l'affichage :

feed_url = "http://www.url_du_flux"
output = "<h1>Lecture d'un flux RSS</h1>"
open(feed_url) do |http|
    response = http.read
    result = RSS::Parser.parse(response, false)
    output += "Titre du flux : #{result.channel.title}<br />"
    result.items.each_with_index do |item, i|
       output += "#{i+1}. #{item.title}<br />" if i < 10
     end
end

Explications :

- feed_url est bien sûr l'adresse du flux RSS
- output est une chaine qui contiendra le code à afficher dans notre page Web

On commence par lire le flux avec http.read puis on le parse avec RSS::Parser.parse, cette étape permet de transformer le flux en un objet simple d'utilisation, par exemple, pour obtenir le titre du flux, un result.channel.title suffit.

Mise en cache

En vue de la mise en cache, pourquoi pas utiliser un petit système de cache ? Voici comment faire :

 
En savoir plus
 
 
 

f CachedItem.check_for("RSS")
    # Disponible depuis le cache
    flux_rss = CachedItem.get_cached("RSS")
else
    feed_url = "http://www.url_du_flux..."
    open(feed_url) do |http| flux_rss = http.read
       flux_rss = RSS::Parser.parse(flux_rss, false)
       CachedItem.store_data("RSS", flux_rss)
    end
end

On commence par vérifier si le flux à déjà été parsé récemment et si ce n'est pas le cas, on le récupère et on le stocke dans le cache.

Contenu proposé sous licence Creativ Commons par Stéphane Brun


JDN Développeur Envoyer Imprimer Haut de page

Sondage

Adobe parviendra-t-il à percer avec sa nouvelle suite de création Web Edge ?

Tous les sondages