Comment puis-je cache une méthode avec Ruby/Rails?

J'ai un coûteux (temps) demande externe à un autre service web que je dois faire, et je voudrais de les mettre en cache. J'ai donc tenté d'utiliser cette l'idiome, en mettant le texte suivant dans le contrôleur de l'application:

def get_listings
  cache(:get_listings!)
end

def get_listings!
  return Hpricot.XML(open(xml_feed))
end

Quand je l'appelle get_listings! dans mon contrôleur, tout est cool, mais quand je l'appelle get_listings Rails se plaint qu'aucun bloc n'a été donnée. Et quand je le regarde que la méthode que je vois qu'il n'a en effet s'attendre à un bloc, et en outre, il semble que la méthode est à utiliser uniquement dans le point de vue? Je devine donc que, bien qu'il n'était pas déclaré, que l'exemple est juste pseudocode.

Donc ma question est, comment puis-je cache quelque chose de ce genre? J'ai essayé diverses autres façons, mais ne pouvait pas le comprendre. Merci!