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(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):6Potete 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 => 10E 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.