Pour tous les développeurs Ruby, voilà une petite sélection de gems à ne pas rater. Au programme de ce premier numéro, des gems pour rails.

Paper Trail

Paper Trail est une gem de versioning pour ActiveRecord. Elle permet de garder toutes les modifications  effectuées sur les modèles et donc de pouvoir faire des annulations. Simple à mettre en place (Un Railscast sur le sujet existe, d'ailleurs), et très efficace.

Une très bonne gem pour les projets ayant besoin d'audit ou d'une sécurité supplémentaire.

https://github.com/airblade/paper_trail

bonus:

Voilà le railscast

http://railscasts.com/episodes/255-undo-with-paper-trail

Carrierwave

Carrierwave est un gestionnaire d'upload et d'attachement, à mon goût mieux que Paperclip (si vous ne connaissez pas paperclip allez donc voir ici).

Tout comme Paperclip, il permet d'attacher des objets (images, pdf, autre) à des modèles et de retoucher des images . Son gros avantage est d'être beaucoup plus dry que paperclip: au lieu de mettre la logique propre aux uploads dans les modèles, elle se retrouve dans des Uploaders, présents dans le dossier app/uploader/.

https://github.com/jnicklas/carrierwave

Devise

Je vous parle de cet gem là rapidement, mais je pense que vous la connaissez tous: Devise est une gem générant un systeme d'authentifications.

Gérer les authentifications est souvent galère: mots de passe à crypter, envois d'emails de confirmations, d'emails de récupération de mots de passe, reconnexion automatique, … Devise simplifie grandement la chose. Flexible, (plus ou moins) simple à personnaliser, cette Gem est réellement un must have.

https://github.com/plataformatec/devise

bonus:

une gem permettant d'envoyer des invitations d'inscriptions avec Devise.
https://github.com/scambra/devise_invitable

Prawn

Prawn est un outil permettant de générer des PDF. Avec un langage peu intuitif et une doc un peu dure à comprendre, mais que fait Prawn ici? C'est simple, il est juste surpuissant. Avec cette crevette (et avec du temps), vous pourrez faire absolument ce que vous voulez en terme de PDF. Un très bon outil, que je quitterrai quand même avec grand plaisir si quelqu'un me laisse en commentaire une gem aussi puissante permettant de travailler en html/css.

http://prawn.majesticseacreature.com/

r18n

Cette gem de régionalisation et localisation (pour un joli site multilingue) à deux avantages par rapport au système de base de rails : elle déplace les fichiers de langue dans app (ce qui à mon goût est bien plus leur place que config) et permet d'avoir une syntaxe plus propre pour les appeler : fini les =t “admin.infos.name”, place à=t.admin.infos.name .

http://r18n.rubyforge.org/

Backup

Comme son nom l'indique, cette gem permet de mettre en place des backups réguliers des bases de données et de dossiers, et ce sur plusieurs serveurs. Elle permet de se passer d'une solution fait main, pour ceux qui n'ont pas le temps/l'envie/les compétences.

https://github.com/meskyanichi/backup