Riassumiamo le attività svolte e quelle da portare avanti su Semilla.
Per evitare che il monkey-utente debba installare a manina tutte le gemme richieste prima di poter lanciare l’applicazione ho lanciato un:
$ rake rails:freeze:gems
in questo modo tutte le librerie/gemme necessarie a rails vengono copiate nell’applicazione (sotto vendor/rails). Molto comodo ed intelligente: in futuro continuerà a funzionare senza la necessità di avere installato le versioni opportune sulla propria macchina.
Relativamente al task rake semilla:install:
- è stato rinominato
è più facilmente portabile: ho fatto in modo che i nomi dei file vengano costruiti dal sistema in base al file separator in uso (es: ‘\’ in Windows al posto di ‘/’ in Linux, Mac, Unix, etc). Per fare ciò basta utilizzare File.join() quando si costruiscono i pathname.
- adesso salva una copia del vecchio
config/database.yml postponendo un .orig al file originale
- vengono previsti dei valori di default per i parametri che richiede all’utente (username e password del database mysql, e nome dei database mysql che andrà a creare per l’applicazione)
- invoca il task
db:migrate per applicare le migration (anche qui uso l’operatore backtick…e non l’ho testato sotto Windows, probabilmente c’è un metodo più elegante per richiamare un task all’interno di un altro task in rake…)
Nel modello User utilizziamo l’email come login, e di fatto abbiamo un campo “ridondante”. Sarei tentato di togliere il campo email, ma è richiesto da acts_as_authenticated nel caso in cui si voglia sfruttare (e noi lo faremo) la classica funzione del tipo “ricordami la password”: quindi è meglio lasciarlo.
Vediamo le cose da fare:
- l’utente una volta regitratosi può modificare i propri dati (eventualmente aggiungendo una propria immagine)
- funzione: forgot password (password reminder via email)
- funzione: invite a friend (una mail ad un indirizzo specificato)
- testarla sotto Windows
Resta da decidere se e quali item da portare avanti, quali da lasciare per una successiva versione, oppure quali – non presenti qui – inserire.