I 20 migliori plugin per creare applicazioni Rails

Rails 3 è ormai ad un passo dall’uscita ufficiale e tutti gli autori di plugin e gemme stanno lavorando per garantire la compatibilità dei loro prodotti con la nuova versione del framework.

Tra gli innumerevoli plugin rilasciati dalla comunità Rails, vorrei stilare una lista dei 20 più utilizzati nei progetti di DevInterface.

h2. Autentication


* Authlogic: sicuramente rappresenta il plugin più diffuso tra le applicazioni Rails 2.x. Il suo rilascio ha mandato in pensione il valido ma verboso RESTful Authentication, pioniere dell’autenticazione durante la release 1.2.x di Rails.


* Devise: fornisce un’implementazione completa sotto tutti i punti di vista del meccanismo di autenticazione, con supporto per la registrazione, il password recovery e molto altro. La sua modularità, unita al fatto di essere basato su Rack, lo candida a diventare il punto di riferimento per l’autenticazione in Rails 3.


* Subdomain_fu: ottimo plugin per la gestione dei sottodomini. Date un occhio alla nostra authlogic_subdomain_fu_startup_app per avere un’idea del suo funzionamento assieme ad Authlogic. Rails 3 fornisce nativamente il supporto per il routing condizionale basato su sottodomini, quindi questo aspetto del plugin verrà eliminato nelle prossime versioni.


h2. User Interface


* LessCSS è una libreria essenziale per scrivere i fogli di stile in modo veloce e DRY. La sintassi fornita da questo framework permette di definire variabili e di includere stili esistenti in altri. E’ inoltre perfettamente compatibile con la sintassi CSS, quindi basta rinominare il file css in .less per essere già a metà dell’opera.


* More: questo plugin permette di utilizzare automaticamente LessCSS in applicazioni Rails. Unito a Blueprint CSS permette lo sviluppo di templates estremamente gradevoli in modo agile e cross-browser.


* HAML e Sass rappresentano una valida alternativa ad ERB per il templating dando la possibilità di scrivere pagine HTML in modo conciso e veloce. Anche Sass come LessCSS fornisce un’ottima soluzione per scrivere CSS in modo veloce utilizzando una sintassi concisa e riutilizzabile.


* Formtastic: plugin fondamentale per creare tutte le form per i nostri model in maniera elegante e funzionale. Da notare come il plugin traduca automaticamente le label degli attributi basandosi sui file di lingua associati ad ActiveRecord.


* Show_for: è il complementare di Formtastic per la visualizzazione dei nostri models.


* Paperclip: ottimo plugin per la gestione degli attachments ed ottimamente gestito da Formtastic.


h2. Business Logic


* Inherited Resources è un eccellente plugin per la scrittura di controllers in modo veloce e DRY. Utilizzandolo si rischia di vedere le proprie classi controller un po’ “vuote”…


* Active Scaffold: questo plugin è ottimo specialmente per gestire in modo automatico il CRUD di models in eventuali pagine amministrative del sito. E’ facilmente configurabile ed offre una grande versatilità necessaria a gestire tutte le situazioni.


* CanCan è un piccolo plugin per gestire ACL (access control list) in modo veloce e senza troppa difficoltà. Utile se si vuole limitare l’accesso a risorse senza dover utilizzare soluzioni più complesse.


* Will_paginate: un must per chiunque voglia paginare il proprio dataset.


h2. Miscellaneous


* Configatron: grazie a questo plugin è possibile impostare parametri di configurazione della nosta applicazione evitando costanti o variabili globali.


* Delayed Job, plugin in grado di gestire lunghi processi asincroni da lanciare in background. Utile per la gestione di newsletter.


h2. Testing


* Cucumber: grande libreria per sviluppare applicazioni Rails seguendo il BDD (behaviour driven development). E’ un ottimo strumento se usato costantemente ed in maniera estensiva ma richiede una curva di apprendimento un po’ elevata. Si rischia facilmente di duplicare features e steps se non si ha una conoscenza di quanto già implementato dagli altri membri del team.


* RSpec ha rappresentato una rivoluzione nel mondo del testing per la comunità Rails, spostando l’attenzione dal TDD (test driven development) al BDD. Ottimo per testare controllers e models. Le stories sono state soppiantate dalle features di Cucumber.


* Shoulda: plugin originalmente creato per “simulare” BDD nei Test::Unit ma ottimamente affiancabile a RSpec specialmente nel testing dei models.


* FactoryGirl, plugin creato come altenativa alle verbose e poco manutenibili fixtures.


* Mocha: necessario per rendere i test disaccoppiati dal database, fornisce una sintassi chiara per creare mock e stubs dei nostri modelli.


Questa è solo una piccola lista dei plugin disponibili. Probabilmente qualcuno ne sceglierebbe degli altri per la propria top 20; qualcun altro sarà d’accordo con me. Cosa ne pensate?


Condividete le vostre preferenze.