Mogo: A Planet-Style Feed Aggregator
Mogo combines multiple news feeds (or feed topic searches) into a single web page view, much like a typical “Planet”-style feed aggregator. It's built in Ruby on top of Sinatra and DataMapper.
Dependencies and all configuration is done in environment.rb. Your database is also set up here. DataMapper will use sqlite3 by default. Tests use the sqlite3-memory adapter (no configuration needed).
rake db:migrate rake feeds:add URL=http://blog.zerosum.org rake feeds:update ruby application.rb
Use the web interface located at /admin to add and remove feeds. Accessing this URL will require a username and password. These settings are adjustable in environment.rb; the defaults are 'admin' and 'password'.
You can also add feeds directly from the command line:
rake feeds:add URL=http://blog.zerosum.org
Run rake feeds:update to update the cached feeds. You can schedule this as a cron job to fire every few minutes if you like.
We use Sphinx for full-text indexing and search. Therefore, you'll need to have it installed. You can find downloads and installation instructions at www.sphinxsearch.com.
To enable search in Mogo, set the option in environment.rb. Search is disabled by default. I've only tested search with MySQL, so set your database connection string to a MySQL database you'll create (default: 'mogo' with user 'root'). Feel free to tune the sample configuration provided in sphinx.conf to your taste. You probably won't want to use a passwordless root user in a production environment ;-).
Once that's done, go ahead and run the supplied Rake tasks to get up and running:
rake sphinx:reindex # update the search indexes; you'll probably want to schedule this periodically rake sphinx:search:start # start it up rake sphinx:search:stop # shut it down
You should now be able to run application.rb and use the rudimentary search interface.