[ruby-it] come non stampare l'ultima riga da irb?
Antonio Cangiano
acangiano a gmail.com
Dom 15 Nov 2009 16:18:59 CET
Ciao Ignazio,
2009/11/15 Ignazio Mostallino <gnagno a gmail.com>
> sto cercando un metodo in una classe; quindi scrivo una regexp per
> trovarlo così:
>
> r = \blabla\
>
r = /blabla/
>
> digito quindi:
>
> Classe.methods.each {|m| puts m if m =~ r }
>
> per trovare tutti i metodi che matchano la mia regexp, il codice
> funziona ma mi viene comunque stampata la lista di tutti i metodi della
> classe che mi satura il terminale... come posso farmi stampare solo la
> lista dei metodi e non tutti i metodi della classe?
>
Ti ritorna tutta la lista perché irb valuta l'espressione che hai inserito.
Per rendere la cosa più leggibile, puoi semplicemente ritornare un valore
diverso. Ad esempio potresti fare così:
>> Kernel.methods.each {|m| puts m if m =~ r } && true
print
printf
sprintf
=> true
Ma each non è il metodo migliore per quello che vuoi fare tu. Semplicemente
usa select:
>> Kernel.methods.select {|m| m =~ r }
=> ["print", "printf", "sprintf"]
Ciao,
Antonio
--
http://ThinkCode.TV - Screencast e videocorsi di programmazione
http://antoniocangiano.com - Zen and the Art of Programming
http://math-blog.com - Mathematics is wonderful!
Follow me on Twitter: http://twitter.com/acangiano
Author of "Ruby on Rails for Microsoft Developers" (Wrox, 2009)
More information about the Ml
mailing list