IRB

Vedi tutte le pagine e le modifiche recenti o scarica i sorgenti nella pagina


IRB è un affarino utilissimo che viene fornito insieme a ruby (tranne che in debian, dove i package manager lo danno come pacchetto a parte, chissà perché) e che fornisce un ambiente interattivo per provare codice ruby.

IRB è quello che si dice un REPL, si tratta cioè di un interprete che funziona in modalità interattiva permettendo di vedere ad ogni passo i risultati delle proprie operazioni, ad esempio:
irb(main):001:0> a= 1+2
=> 3
irb(main):002:0> a
=> 3
irb(main):003:0> a+3
=> 6
irb(main):004:0> a
=> 3
irb(main):005:0> a+=3
=> 6
irb(main):006:0> a+ b
NameError: undefined local variable or method `b' for main:Object
        from (irb):6
Potete configurare un sacco di cose in irb, ad esempio il prompt, uno molto comodo si ottiene lanciando il comando come irb --simple-prompt:
>> def che_ne_penso_di_irb
>>  "molto meglio" 
>> end
=> nil
>> che_ne_penso_di_irb
=> "molto meglio" 

Potete definire un prompt che vi piaccia particolarmente, anche se di default IRB ne ha già alcuni.

Inoltre avete una comoda history in stile shell per ridigitare comandi che aveta già usato, ed anche l’autocompletamento per nomi di metodi, classi e variabili.

Potete poi creare delle sotto shell :
>> x=10
=> 10
>> irb
>> x
NameError: undefined local variable or method `x' for main:Object
        from (irb#1):1
>> exit
=> #<IRB::Irb: @context=#<IRB::Context:0x29de070>, @signal_status=:IN_EVAL, @sca
nner=#<RubyLex:0x29dcd98>>
>> x
=> 10
E potete entrare in un oggetto, cioè scrivere codice che verrà eseguito all’interno dello stesso, come se aveste usato instance_eval:
>> obj=Object.new
=> #<Object:0x29faeb8>
>> pushws obj
=> [main]
>>  def dieci
>>   10
>>  end
=> nil
>> popws
=> []
>> obj.dieci
=> 10

Come avrete immaginato potete usare un’infinità di pushws , un po’ come pushd in alcune shell.

Inoltre IRB userà un file .irbrc per caricare dei dati o delle funzionalità al momento dell’avvio, il che rende possibile aggiungere facilmente dell funzionalità.

Potete poi usare IRB come base per una vostra interfaccia di comando, come fa ad esempio RubyOnRails con script/console .

Infine, potete provare una versione depotenziata di IRB con TryRuby.

Updated on December 16, 2005 00:56 by Ruby Fan (151.37.134.76)