Project

perennial

0.0
No commit activity in last 3 years
No release in over 3 years
Perennial is a platform for building different applications in Ruby. It uses a controller-based approach with mixins to provide different functionality.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

Perennial - a Ruby Event-driven application Library

Perennial is yet another god damned event library / framework for Ruby, built on top of EventMachine. The whole goal of Perennial is to make it easy to build a particular style / class of application such as Marvin. Most of the code has been extracted from building Marvin (and later, BirdGrinder - like Marvin but for twitter).

Applications built for Perennial are devised around the concept of 'clients' and 'handlers'. Clients are things which handle the actual processing (e.g. Marvin's IRC client takes the IRC protocol and converts it into events) and handlers respond to messages. In practice, it's an approach inspired by Rack in that we do the simplest thing's possible.

Since each event processed by a handler is incredibly simple (a symbol for a name and a hash of associated options / details), and there are typically few requirements (e.g. a handler only typically needs to define the 'handle' method) it makes it relatively easy to build your application how you like.

In other words, Perennial is mainly a bunch of useful mixings (Dispatchable, Hookable, Delegateable) which fit in with some evented application design along with the framework for building applications around this design.