Sometimes, I can’t believe the amount of work I can accomplish with Ruby on Rails. Today, I finished coding a RSS feed aggregator that generates aggregated RSS feeds for a Joomla web site (it merges posts from multiple feeds into one single daily feed for Joomla).
- Import/export tab-delimited list of channels
- Fetch RSS posts and converting the content to UTF-8 encoding (if necessary) (all major RSS formats) in background at regular intervals (daemon)
- Show a list of all posts published today (taking into account the timezone)
- Present that list in Atom format
- Manually add/edit/destroy a channel
- Show the raw channel content in XML format (to spot conversion errors if any)
- Store the channels and posts in a database
- Add a “source” element for each post in the aggregated feed that I generate
- Modify the Joomla renderer to display the source of the post
- Provide a way to stop/start the posts importer running in background
- Set-up CentOS server for hosting the Rails application
- Deploy to production server using Capistrano
- Integrate a nice CSS template
- Include basic http authentication for a single administrator
- List all the posts in the database, with pagination
- Provide a nice 2-level navigation menu
- Store source code into Subversion
It took only 19 hours to do all that. And it could have been faster if rendering the aggregated feed in Joomla would have been a lot easier (SimplePie does not support the “source” tag in RSS 2, but it does in Atom).
Thanks to the following open source contributions which made me save lots of time:
I’m very happy with the result. I wonder if the same results could be achieved using another framework, such as .Net or PHP, in the same amount of time. I think it would take more time, but hey, my opinion is biased.
Long live to Ruby on Rails!