Un jour, une gem

06/06/2012

Mercredi c'est Cramp

gem install cramp

La gem pour vos apps asynchrones

Aujourd’hui une gem sympa pour faire des applications entièrement asynchrones. C’est construit sur la base d’EventMachine et ça nous donne accès à des fonctionnalités sympathiques comme les WebSockets par exemple.

Le code ressemble à n’importe quelle application Rack :

require 'rubygems'
require 'cramp'
require 'thin'

class StreamController < Cramp::Action
  periodic_timer :send_data, :every => 1
  periodic_timer :check_limit, :every = > 2

  def start
    @limit = 0
  end

  def send_data
    render ["Hello World", "\n"]
  end

  def check_limit
    @limit += 1
    finish if @limit > 1
  end

end

Rack::Handler::Thin.run StreamController, :Port => 3000

Avec quelques petits trucs en plus, comme des timers :)

Voilà maintenant il ne reste plus qu’à tester !

Les liens utiles