Non solo Rails: costruire un blog con Merb

10 giugno 2008

Molti sviluppatori hanno avuto modo di apprezzare Rails e le features che introduce per migliorare l’esperienza di chi deve sviluppare un’applicazione Web. Tuttavia esistono valide alternative, che vale la pena conoscere. Questo articolo è rivolto principalmente agli sviluppatori che abbiamo già una conoscenza di Rails, seppur sommaria.

Merb è un progetto di Ezra Zygmuntowicz di EngineYard. È nato principalmente con l’obbiettivo di essere un framework “leggero”: niente estensioni forzate, poche “magie sintattiche”, ma con il vantaggio di una notevole velocità di esecuzione.

Una delle prime cose che si apprezza approcciando Rails è senza dubbio l’uso di ActiveRecord per la gestione dei modelli (o della relativa persistenza), ma esistono anche altri Object-Relational Mapper (ORM). DataMapper è uno di questi. Benché Merb non imponga l’uso di un ORM specifico (può infatti utilizzare benissimo anche ActiveRecord, o non utilizzare affatto un ORM) in questo articolo presenteremo l’uso di DataMapper.

Un’altra peculiarità di Merb è l’uso di RSpec per il testing (o meglio “comportamento”) dell’applicazione che si va a costruire, nonostante il classico Test::Unit sia ancora presente.

Installazione

Essendo un progetto ancora giovane non potevamo aspettarci una installazione “semplicissima”, abbiamo riscontrato qualche problemino, ma nulla di insormontabile. Anzitutto occorre installare le gem.

$ sudo gem install merb
$ sudo gem install mongrel json json_pure erubis mime-types rspec hpricot mocha rubigen haml markaby mailfactory Ruby2Ruby

Fatto ciò passiamo allo strato ORM. Come detto precedentemente vogliamo utilizzare DataMapper.

$ sudo gem install datamapper merb_datamapper merb_helpers

Ora abbiamo bisogno dei driver specifici: do_mysql, do_sqlite3, do_postgres. Scegliamo di utilizzare MySQL.

$ sudo gem install do_mysql

Qui si presenta un piccolo problema: sistemiamolo! Bisogna entrare nella directory della gem do_mysql (nel nostro caso è /usr/local/lib/ruby/gems/1.8/gems/do_mysql-0.2.3/), aprire il file ext/mysql_c.i e madificare la linea #41 affinché includa il corretto header file.

%include "/usr/local/mysql-5.0.41-osx10.4-i686/include/mysql.h"

Quindi editare il file ext/mysql_c.c e commentare la linea #16079:

/*  rb_define_const(mMysql_c, "MYSQL_OPT_SSL_VERIFY_SERVER_CERT", SWIG_From_int((int)(MYSQL_OPT_SSL_VERIFY_SERVER_CERT))); */

Adesso possiamo ricompilare ed installare la gemma:

$ sudo make clean
$ cd ..
$ rake repackage
$ cd pkg
$ sudo gem install ./do_mysql-0.2.3.gem

Se vuoi aggiornamenti su Non solo Rails: costruire un blog con Merb inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Non solo Rails: costruire un blog con Merb

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy