HTML5Boilerplate Rails 3 Template
Ogni volta che si parte a fare un sito da zero ci sono sempre gli stessi dilemmi, come lo strutturo? dove metto i CSS? Ma questa figata funzionerà su Internet Explorer? Gli alieni esistono? ..forse avrei dovuto usare un CMS.
Ovviamente non esiste una risposta adatta ad ogni caso, ma ci sono dei componenti che ormai sono consolidati quindi tanto vale metterli insieme fin da subito.
Cercando "rails jquery" su Github si hanno qualcosa come 27 repository che implementano più o meno la stessa cosa, ovvero far funzionare la libreria JQuery con Rails 2 o 3 oppure integrare componenti aggiuntivi di JQuery. Ne ho provato qualcuno ma spesso finivano dando solo come errore:
..config/application.rb:12: undefined method `[]=' for nil:NilClass (NoMethodError)
Bene, visto che oltre a JQuery avevo bisogno di qualcos'altro ho fatto che fare un nuovo template che in pochissimo tempo permette di avere una base testata per fare siti in HTML5, supporto mobile e IE6 compreso: HTML5Boilerplate.
Creazione della webapp
Dal terminale:
rails new myapp -m http://github.com/grigio/rails-3-templates/raw/master/html5boilerplate.rb
e per provarla potete fare una piccola pagina d'esempio così:
cd myapp
rails g controller Dashboard index
echo "Hello <%= link_to 'click', dashboard_index_url, :remote => true %>" > app/views/dashboard/index.html.erb
rails s
Ecco la struttura della vostra webapp già pronta compresa di JQuery e numerosi hacks :P. Se vi interessa meglio capire il linguaggio sappiate che si tratta di Thor una delle nuove dipendenze di Rails 3.
Quindi andando su http://localhost:3000/dashboard/index e cliccando su "click" dovreste vedere questo output nella console.
Started GET "/dashboard/index" for 127.0.0.1 at Fri Sep 24 19:17:09 +0200 2010
Processing by DashboardController#index as JS
Completed in 70ms
Quindi?
Il "link_to 'click' .." è diventato <a href="http://localhost:3000/dashboard/index" data-remote="true">click</a>
che poi è stato reso dinamico da JQuery che infine ci permette di mandare delle richieste JS asincrone.
Ora tocca a voi plasmare il web :P
Altre tecnologie interessanti e applicazioni web offline
Oltre ad HTML5Boilerplate ci sono altre tecnologie (HAML, SASS, Compass) per lo più collegate a ruby che nascono per rendere la vita più agevole a chi crea webapp.
Sì tratta di *astrazioni* su standard consolidati quali HTML e CSS, ma osservando gli esempi si può facilmente intuire che hanno il loro motivo d'esistere. Tra i nomi noti cito Diaspora il tentativo di creare un Facebook Open Source e distribuito.
C'è qualcuno in ascolto che già le usa?