Posts Tagged ‘rails’

Ruby: Getting current method name

Wednesday, October 22nd, 2008

In ruby 1.9 è possibile utilizzare la variabile __method__ per ottenere il nome del metodo attualmente chiamato. In ruby 1.8 non esiste un modo diretto per accedere al nome del metodo ma è possibile accedere alla variabile caller che, tra le altre informazioni, contiene il nome del metodo chiamante (tips trovato su internet). Ecco come creare un metodo funzionante su entrambe le versioni:

def method_name
if RUBY_VERSION.to_f < 1.9
caller[0]=~/`(.*?)’/
$1
else
__method__
end
end

Se chiamerò da un metodo foo() method_name otterò sempre ‘foo’

Installazione gem mysql su MacOS X

Wednesday, August 6th, 2008

Quando attivi Mongrel su una macchina MacOS X (Intel) puoi avere questo messaggio:

“WARNING: You’re using the Ruby-based MySQL library that ships with 
Rails. This library is not suited for production. Please install the 
C-based MySQL library instead (gem install mysql).”

L’installazione corretta della gemma mysql è la seguente:

sudo env ARCHFLAGS=”-arch i386″ gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config -with-mysql-dir=/usr/local/mysql

10 Things Every Java Programmer Should Know About Ruby

Wednesday, December 12th, 2007

Sul sito Ruby-doc sono riportate le slides di Jim Weirich alla Open Source Conference del 2005 riguardo a ruby.

Sono molto interessanti e utili, la lettura non porta via più di 10 minuti…

Il link è questo

Il blog di Weirich è questo

Compile Time? Runtime? Anytime!

Wednesday, December 12th, 2007

Una delle prime domande che mi viene posta quando parlo di Ruby a qualcuno è ‘come viene compilato il codice?”

In parte rispondo con la pagina 400 del libro ‘Pragmatic Ruby Programming 2nd edition’ di Dave Thomas (che consiglio vivamente di acquistare)

“The important thing to remember about Ruby is that there isn’t a big difference between
‘compile time’ and ‘run time’. It’s all the same. You can add code to a running process.
You can redefine methods on the fly, change their scope from public to private, and
soon. You can even alter basic types, such as Class and Object.
Once you get used to this flexibility, it is hard to go back to a static language such as
C++ or even to a half-static language such as Java.
But then, why would you want to do that?”

Il grande vantaggio di Ruby è la possibilità di modificare e aggiungere metodi a runtime. Come è possibile questo?

Cominciamo col dire che, similmente a SmallTalk, per ruby ogni cosa è un oggetto con i suoi metodi, dal numero alla stringa, non come avviene in Java dove, ad esempio, abbiamo i tipi primitivi privi di metodi.

In un linguaggio OO standard gli oggetti vengono identificati dalla classe che ha istanziato l’oggetto stesso, as esempio un oggetto di tipo String in java sarà istanziato da una classe String. In ruby il tipo degli oggetti viene identificato in base ai metodi che possiedono. Ecco che grazie a questo abbiamo librerie come ActiveRecord (lo strato ORM di Rails) che senza scrivere quasi una riga di codice e senza scrivere metodi di accesso ai campi di una tabella ti permette di interrogare il database. Tutto viene fatto in automatico, a runtime.

Imparare a fare i test con Rails

Wednesday, December 12th, 2007

Stiamo finalmente affrontando lo sviluppo con i test (Piero dirà: Era ora!!!). Una buona guida si trova QUI.

Da una certa soddisfazione vedere che il codice che scrivi è più robusto e che può essere sottoposto a stress per vedere come si comporta e scoprire che si comporta bene!

Rails 2

Friday, December 7th, 2007

Sto aggiornando le ruby gems sul mio mac e ho appena avuto una sorpresa: Rails 2!

La mia applicazione che sto sviluppando non lamenta di warning, ora farò la prova del nove :D