Ruby on Rails Dojo

29.06.2007

Semilla: chiuso!

Filed under: semilla — carlos @ 1:04

La prima “iterazione” del Dojo relativo a Semilla è terminata (sono passate due settimane…).

Quindi riassumo qui le cose da fare per la prossima iterazione:

  • mailing: “forgot password?” nel login
  • invite friends: l’amico riceve (sul proprio account di posta) le credenziali, quindi si trova già registrato… Qui occorre introdurre anche il concetto di “friendship” che potrà tornare utile in seguito…
  • user resources: ogni utente può gestire proprie “risorse” (per il momento solo immagini)
  • testing “serio”…
  • provare sotto Mac, Win e Linux

Ovviamente non tutto potrebbe rientrare nella successiva versione, ma le cose da fare sono comunque queste.
Se siete interessati all’attuale versione di Semilla, inviatemi un’email.

24.06.2007

Milestone…e To Do

Filed under: semilla — carlos @ 9:30

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.

19.06.2007

5th step: modifiche e nuovo layout

Filed under: semilla — carlos @ 8:32

Eccomi di nuovo con ulteriori modifiche apportate a Semilla.
Dal momento che il codice aggiunto comincia ad essere (relativamente) tanto, evito di postarlo sul blog limitandomi a citare i file sui quali sono intervenuto.

Anzitutto modifico il file config/routes.rb per fare in modo che la pagina di default sia account/signup.

Vi è la necessità di un layout “omogeneo” per tutte le pagine dell’applicazione, così imposto un file app/views/layouts/application.rhtml ed un opportuno foglio di stile (public/stylesheets/style.css). Durante lo sviluppo accedo spessp a questi file per adattare (in modo try-and-modify) il layout alle mie esigenze (man mano che le scopro!).

Adesso passo ad implementare della “logica”. Semplifico il form di signup in modo che chieda solo le informazioni minime per creare un account (indirizzo email e password); una volta efettuato il login sarà possibile editare il proprio profilo per modificare gli altri dati (first name, last name e screen name).
Lo screen name è un semplice nick da mostrare all’interno dell’applicazione al posto dell’indirizzo email, e per “invogliare” l’utente a modificarlo lo imposto inizialmente uguale proprio all’indirizzo email (v. metodo signup in app/controllers/account_controller.rb).
Per tenere traccia di questi nuovo campo devo aggiungere una colonna alla tabella users e così utilizzo una migration opportuna….e scopro che sqlite non supporta gli ALTER TABLE (mia ignoranza o cosa?). Comunque sia passo a MySQL…

Continuo impostando l’azione account/edit per permettere all’utente (loggato) di modificare i propri dati. Da notare l’utilizzo di un filtro per proteggere il tutto:

before_filter :login_required, :only => [ :edit, :index, :logout ]

Infine implemento un task rake per fare in modo che il monkey-utente possa facilmente installare l’applicazione utilizzando un database MySQL (e qui facciamo un atto di fede…).
Il task si trova in lib/tasks/semilla.rake, probabilmente è migliorabile e non troppo rubyista infatti:

  • non ho avuto modo di provarlo sotto Windows
  • non salva una copia del file config/database.yml prima di sovrascriverlo

Il task è invocabile da rake utilizzando $ rake semilla:mysql.

Intanto Semilla si presenta così

semilla signup

e non mi dispiace affatto!

Alla prossima!

Pagina successiva »

Crea un sito o un blog gratuitamente presso WordPress.com.