Sinatra Padrino Carrierwave

371 mots | info web sinatra padrino ruby |

Sinatra Padrino Carrierwave

Après des années à utiliser RubyOnRails j’ai décidé de regarder un peu à côté pour voir ce qui se passe et comment ça marche.

Parmis les noms qui reviennent souvent : Sinatra et Padrino. Padrino est une sorte de projet par dessus Sinatra. Et Sinatra est un framework similaire à RubyOnRails mais plus léger, bien plus léger.

J’ai eu la chance de croiser un développeur utilisant Padrino sur le channel de Sinatra, j’ai donc regardé de plus prés. Ayant besoin de coder quelque chose de simple, léger pour traiter une grande quantité de données j’ai donc tenté la chance.

Je reviendrai sur ce framework prochainement je pense, une fois que j’aurai fait un tour plus complet mais d’hors et déjà je peux vous dire que j’ai beaucoup apprécié. Certes pour le moment je suis surtout axé sur une partie non web de l’application, mais la simplicité de l’application est appréciable. Simple de se brancher ici et là, de modifier une configuration etc …

J’ai aussi besoin de gérer l’upload de fichiers. Habituellement on entend vite “paperclip” quand on pose cette question. Je ne sais pas comment je suis tombé sur Carrierwave. Relativement simple, pratique il permet de “taper” dans différents services de stockage de données : AWS S3, Rackspace Cloud Files, et MongoDB GridFS. Dans le cas d’images on a le choix entre utiliser RMagick, ImageScience, ou MiniMagick pour générer différentes résolutions.

D’ailleurs, jetez un oeil à ImageScience, en remplacement de ImageMagick.

Après quelques tests, problèmes de configuration etc … J’ai réussi à faire marcher tout ça. Un dernier problème que j’ai rencontré c’est le fait que Carrierwave utilise un répertoire temporaire, de cache, pour préparer son boulot etc … Par défaut il essaye d’écrire dans uploads/tmp/, ce qui est à la limite faisable sur un serveur maison. Mais ça ne marche pas chez Heroku puisque seul tmp/ est accessible en écriture. Après une rapide recherche j’ai trouvé un article sur un blog que j’ai déjà croisé cette semaine.

Une semaine plutôt chargée donc. Mais une très bonne impression générale sur Padrino, et Carrierwave.

Ah oui j’ai dût patcher Mail et delayed_job pour les faire marcher avec mon appli. Rien de bien important mais tout de même.