Daily Archives for Wednesday, March 2008

Creando ficheros OPML con Rails

Es un código muy sencillo para generar un fichero OPML ( Outline Processor Markup Language) que permitirá exportar las feeds que tiene una determinada lista en L-exp y luego poderla importar en nuestro lector de feeds preferido.

 

El código es el siguiente:

En nuestro controlador

def create_opml
@data= Data.find_by_id(params[:id])
end

 

En nuestra vista

xml.instruct! :xml, :version=>"1.0" , :encoding=>"UTF-8"

xml.opml "version"=>"1.0" do

xml.head do

xml.title(@data.name)

xml.dateCreated(@data.created_at.strftime("%a, %d %b %Y %H:%M:%S %Z"))

xml.dateModified(@data.updated_at.strftime("%a, %d %b %Y %H:%M:%S %Z"))

xml.ownerName(@data.user.login)

end

xml.body do

for element in @data.elements

if not element.program.feed.blank? and not element.program.feed=='http://'

xml.outline "text" => element.program.name, "title" => element.program.name , "type" => "rss", "xmlUrl" => element.program.feed, "htmlUrl"=>element.program.web

end

end

end

end

Podéis utilizar un validador para comprobar que realmente cumple con las especificaciones OPML.

Acordaros de añadir un ruta en routes.rb

map.connect ‘/xml/opml/:id/export.opml’, :controller=>’xml’, :action=>’create_opml’

sobre esta configuración básica podéis hacer las variaciones que queráis. En mi caso necesito un id que referencia la lista con los datos. Pero esto es adaptable  a vuestras necesidades.