Siete pronti a passare all'azione e scrivere le vostre prime righe in Ruby?
Spero che comprenderete la mia decisione di tralasciare i preamboli, dopo tutto questa non è una guida convenzionale a Ruby o Rails, per le quali rimando volentieri alla Guida Ruby e Guida Ruby on Rails pubblicate su HTML.it. In aggiunta, non scordatevi che per comprendere al meglio quanto seguirà sarà necessario tenere sempre sotto mano le risorse presentate nel primo post e la documentazione di Ruby.
Dunque, per cominciare a scrivere le vostre prime righe dovete almeno aver scelto un editor ed installato Ruby sul vostro computer. Come anticipato, questi primi post non tratteranno ancora l'argomento Rails sebbene siano comunque in tema poiché Rails... è Ruby!
In Ruby, lo ribadisco, ogni elemento è un oggetto. Esistono 4 oggetti fondamentali da tenere a mente:
Non preoccupatevi troppo di conoscere ogni singola funzione di questi elementi, per ora. Preoccupatevi tuttavia di dare uno sguardo alle loro caratteristiche accedendo ai link sopra riportati.
Ovviamente Ruby integra tra le altre cose le variabili, così come i tipi di dato. Ogni tipo di dato in Ruby è un oggetto: String, Numeric, Integer, Array, Hash e via dicendo...
Bene, ora siete veramente pronti. Cominceremo con qualcosa di semplice. Creiamo la nostra prima classe.
Banale? Sì, ma abbastanza complessa da permetterci di analizzare un po' di basi del linguaggio che ci torneranno utili. Potete scrivere questo mini programma in un file, ad esempio person.rb
percorso/interprete/ruby person.rb
oppure via IRB, interactive ruby shell
Osservazioni generali
La prima cosa che mi è saltata all'occhio di Ruby è che non richiede l'uso del punto e virgola ";
Il ritorno a capo è sufficiente, a meno di non voler spezzare più esecuzioni sulla stessa riga.
puts "Mi chiamo "; puts "weppos" #=> weppos
La scrittura del codice, intesa come spazi e tabulazioni, non è vincolante come per esempio in Python, tuttavia ci sono delle convenzioni (le vedremo in futuro) che è bene mantenere.
I metodi possono essere invocati con o senza parentesi, ad esempio:
puts "Ciao #{@name}" puts("Ciao #{@name}\n")
La stessa regola vale per i metodi senza argomenti:
weppos.ciao weppos.ciao()
I commenti in Ruby sono preceduti da #
==begin
Definire una classe ed un metodo
Come potete vedere, le classi vengono definite con la sintassi class NomeClasse
Per ogni classe possono essere inseriti metodi, definibili via def nome_metodo
initialize
Per istanziare una classe, a differenza di altri linguaggi, la sintassi è tipicamente object oriented. Il metodo new
Per ora non preoccupatevi troppo della differenza tra @name
name
Stampa del valore
Per stampare a video il valore della nostra stringa abbiamo utilizzato il metodo puts
Kernel
"
Infatti, la sintassi #{nomevariabile}
echo "$variabile"
Ed ora che facciamo?
Potrei andare avanti un mese a scrivere Hello World o script simili ma credo che siano poco divertenti a meno che non vogliate trovarvi sul PC un Hello World
Si tratta di una piattaforma in Rails, che include tra l'altro diversi mini progetti interessanti come librerie per interagire con webservice, metaprogrammazione, XML, HTTP Client e cosucce del genere. Buona parte dei post sarà organizzata cercando di fornire un mix tra basi teoriche, script e suggerimenti che si sono resi necessari nel corso dello sviluppo del progetto e delle sue classi.
Con un banale script avete visto come definire classi, metodi, istanziare oggetti e chiamare metodi stampando valori in output. Non male per dieci righe di codice. Immaginate cosa significhi avere a che fare con un progetto reale ed esigenze reali.
Insomma, un progetto vero è più interessante di Hello World