Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zh/tamanegi

RSS/Atom feeds aggregator, powered by Ramaze. Using Sequel for ORM.
https://github.com/zh/tamanegi

Last synced: 10 days ago
JSON representation

RSS/Atom feeds aggregator, powered by Ramaze. Using Sequel for ORM.

Awesome Lists containing this project

README

        

Tamanegi -- RSS/Atom feeds aggregator powered by Ramaze
========================================================

The project previous name was RaPlanet. But there is another project with
the same name, so I changed the name to Tamanegi (onion in japanese).
Maybe somebody will remember the Matz' presentation on Rubykaigi 2006
"The state of the onion" :) Tamanegi also trying to observe the state of
the net and aggregate atom/rss feeds in one news stream.

Live demo of the application can be seen on URL: http://planet.zhekov.net/

Application details
--------------------

* ORM (model): Sequel (_core and _model)
* Controllers: Ramaze (hm, maybe plain Rack will be also enough?)
* Views: Ezamar (TODO: switch to Tenjin)

Prerequirements (needed gems)
-----------------------------

* sqlite3-ruby (database)
* validatable (models validation checks)
* sequel (models)
* feed-normalizer (feeds parsing)
* json (still not used)
* ratom (feeds)
* thin (optional, deployment, can be mongrel, webrick etc.)
* SystemTimeout (feeds fetching giveup timeout)

Usage
------

[!] Change the settings in the config.rb file - base_url, items per page etc.

* Command line usage

You can use Tamanegi just to fill your database with items and display them with
something else (Ruby on Rails etc.). So from irb or a script

require 'tamanegi'
Tamanegi::sync!(false,true)

* "Development" mode

$ cd tamanegi
$ ./start.rb

This will create the needed tables in the DB (sqlite3: db/tamanegi.db)
"on the fly". By default the thin server is started, but you can change it
inside start.rb.

* "Production" mode

On my site I have nginx talking to two thin instances via sockets:

$ cd tamanegi
$ mkdir -p log
$ thin start --servers 2 --socket /tmp/negi.sock -R ramaze.ru

And inside nginx.conf:

upstream play {
server unix:/tmp/negi.0.sock;
server unix:/tmp/negi.1.sock;
}