In genere tutto quello che serve per scrivere un programma è un qualsiasi editor di testo e ovviamente un interprete. Ruby viene distribuito insieme ad una serie di utility che vanno a creare un ambiente di sviluppo completo e flessibile.
Oltre all'interprete infatti troviamo una shell interattiva, degli strumenti per la creazione e la visualizzazione della documentazione, e infine strumenti per il testing e per le applicazioni web. Vediamo una veloce carrellata degli "attrezzi" che utilizzeremo durante lo svolgimento della guida.
L'interprete Ruby
Innanzitutto c'è l'interprete Ruby che ovviamente si occupa dell'esecuzione dei programmi. Queste sono le principali opzioni, visualizzabili attraverso l'opzione -help
.
$ ruby --help Usage: ruby [switches] [--] [programfile] [arguments] -0[octal] specify record separator ( , if no argument) -a autosplit mode with -n or -p (splits $_ into $F) -c check syntax only -Cdirectory cd to directory, before executing your script -d set debugging flags (set $DEBUG to true) -e 'command' one line of script. Several -e's allowed. Omit [programfile] -Fpattern split() pattern for autosplit (-a) -i[extension] edit ARGV files in place (make backup if extension supplied) -Idirectory specify $LOAD_PATH directory (may be used more than once) -Kkcode specifies KANJI (Japanese) code-set -l enable line ending processing -n assume 'while gets(); ... end' loop around your script -p assume loop like -n but print line also like sed -rlibrary require the library, before executing your script -s enable some switch parsing for switches after script name -S look for the script using PATH environment variable -T[level] turn on tainting checks -v print version number, then turn on verbose mode -w turn warnings on for your script -W[level] set warning level; 0=silence, 1=medium, 2=verbose (default) -x[directory] strip off text before #!ruby line and perhaps cd to directory --copyright print the copyright --version print the version
Vediamone in dettaglio alcune tra quelle che ci possono tornare utili in fase di apprendimento del linguaggio:
-c
: viene controllata la sintassi dello script, che però non viene eseguito. In caso di successo viene fuori un rassicurante "Syntax OK".-d, --debug
: da utilizzare in fase di debug, la variabile $DEBUG è impostata a "true".-v, --verbose
: mostra informazioni addizionali in output (versione dell'interprete, warning in fase di compilazione, etc.).-w
: come -v ma non viene stampata la versione di Ruby, inoltre se non viene indicato il nome del programma da linea di comando lo legge dallo standard input.-e comando
: viene eseguito il comando passato come argomento all'opzione.
Per una trattazione completa di tutte le voci si faccia riferimento alla pagina del manuale. Oltre che attraverso le opzioni da riga di comando è possibile modificare il comportamento dell'interprete operando sulle variabili d'ambiente. Queste sono le principali variabili utilizzate da Ruby:
RUBYLIB
: lista di directory contenenti librerie aggiunte a quelle standard.RUBYOPT
: opzioni addizionali da passare all'interprete.RUBYPATH
: lista di directory nel quale Ruby cerca le applicazioni quando è specificato il flag -S.RUBYSHELL
: persorso della shell di sistema, valido solo per piattaforme Windows e OS/2.
Interactive Ruby
L'Interactive Ruby, in breve irb, è una shell che permette di sperimentare in tempo reale col linguaggio Ruby. Risulta particolarmente utile sia in fase di apprendimento sia in fase di "sperimentazione". Oltre ad essere un interprete interattivo fornisce alcune utili funzionalità tra le quali spicca la "Tab Completition", la possibilità di creare sottosessioni e la presenza di alcuni comandi di controllo (jobs, fg, cb, conf, kill, ...).
Come l'interprete anche irb prevede opzioni da linea di comando:
$ irb --help Usage: irb.rb [options] [programfile] [arguments] -f Suppress read of ~/.irbrc -m Bc mode (load mathn, fraction or matrix are available) -d Set $DEBUG to true (same as 'ruby -d') -r load-module Same as 'ruby -r' -I path Specify $LOAD_PATH directory --inspect Use 'inspect' for output (default except for bc mode) --noinspect Don't use inspect for output --readline Use Readline extension module --noreadline Don't use Readline extension module --prompt prompt-mode --prompt-mode prompt-mode Switch prompt mode. Pre-defined prompt modes are 'default', 'simple', 'xmp' and 'inf-ruby' --inf-ruby-mode Use prompt appropriate for inf-ruby-mode on emacs. Suppresses --readline. --simple-prompt Simple prompt mode --noprompt No prompt mode --tracer Display trace for each execution of commands. --back-trace-limit n Display backtrace top n and tail n. The default value is 16. --irb_debug n Set internal debug level to n (not for popular use) -v, --version Print the version of irb
Spendiamo qualche parola in più su irb, che utilizzeremo molto nel corso della guida. Vediamo come va eseguito.
Gli utenti di Linux, e dei sistemi UNIX-like, devono semplicemente aprire un terminale qualsiasi e scrivere "irb" seguito da una o più opzioni. In ambiente Windows è possibile eseguire fxri (Interactive Ruby Help & Console) che oltre alla shell irb ci mostra un utile browser della documentazione (come mostrato in figura 1). In alternativa è possibile accedere a irb anche attraverso FreeRIDE, attivando la vista attraverso l'apposita icona "IRB" oppure selezionandola nel menu "View".