Le ou les problèmes que vous rencontrez peuvent être dus à 3 choses :
- La version de Ruby que vous utilisez
- L'utilisation de la gemme SystemTimer avec Ruby 1.9
- La gemme JSON
Je l'ai développé ci-dessous...
La première chose que je vous suggère est de mettre à jour votre version de Ruby 1.9. La dernière version stable est la suivante :
ruby 1.9.2p180 (2011-02-18 revision 30909)
Je recommande vivement d'utiliser Gestionnaire de versions de Ruby (RVM) pour installer et gérer Rubies.
Pour ce qui est de l'utilisation de la gemme JSON, jetez un coup d'œil à : http://ruby.about.com/od/tasks/a/The-Json-Gem.htm
Je cite :
Sous Ruby 1.8.7, vous devrez installer une gemme. Cependant, en Ruby 1.9.2, la gemme json est fournie avec la distribution de base de Ruby. Donc, si vous utilisez la version 1.9.2, vous êtes probablement prêt. Si vous êtes sous la version 1.8.7, vous devrez installer une gemme.
Avant d'installer la gemme JSON, sachez d'abord que cette gemme est distribuée en deux variantes. En installant simplement cette gemme avec gem install json, vous installerez la variante de l'extension C. Celle-ci nécessite un compilateur C pour être installée, et peut ne pas être disponible ou appropriée sur tous les systèmes. Cependant, si vous pouvez installer cette version, vous devriez le faire.
Si vous ne pouvez pas installer la version de l'extension C, vous devriez installer gem json_pure à la place. C'est la même gemme implémentée en Ruby pur. Elle devrait fonctionner partout où le code Ruby s'exécute, sur toutes les plates-formes et sur une variété d'interpréteurs. Cependant, elle est considérablement plus lente que la version avec extension C.
Modifier :
On dirait que vous devriez éviter d'utiliser le SystemTimer avec Ruby 1.9. Voir ceci pour plus d'informations : http://isitruby19.com/systemtimer
Pour citer un commentaire fait sur cette page par Phillipe :
Je suis le (co)-auteur de ce bijou. En bref : L'utilisation de cette gemme dans Ruby 1.9 est inutile et n'a aucun sens !
System Timer essaie de contourner certaines limitations du modèle "green thread" utilisé dans Ruby 1.8 (MRI). Voir http://ph7spot.com/musings/system-timer pour plus de détails.
Il est alors non pertinent dans un Ruby 1.9 qui a abandonné le modèle de thread vert et a adopté les threads natifs (en quelque sorte puisqu'il y a toujours un verrou global de l'interpréteur).
A la vôtre, - Philippe