2008-10-23 5 views
2

Lors de l'utilisation de quelque chose comme object.methods.sort.to_yaml Je voudrais que irb interprète les caractères \ n plutôt que de les imprimer.Interprétation n dans irb ou script/console

Je reçois actuellement la sortie suivante:

--- \n- "&"\n- "*"\n- +\n- "-"\n- "<<"\n- <=>\n ... 

Ce que je voudrais quelque chose de similaire à ceci:

--- 
- "&" 
- "*" 
- + 
- "-" 
- "<<" 
- <=> 

Est-ce possible? Y a-t-il une autre méthode que j'appellerai qui interprétera peut-être la chaîne?

Répondre

4

Prefix votre sortie avec puts:

> puts object.methods.sort.to_yaml 
--- 
- "&" 
- "*" 
- + 
- "-" 
- "<<" 
- <=> 
=> nil 
+0

Merci beaucoup - c'est exactement ce que je cherchais :) – mlambie

+0

Par défaut, irb appelle la méthode inspect pour imprimer l'objet, qui, pour une chaîne, échappe à des caractères spéciaux tels que \ n. Imprime et met des caractères spéciaux et appelle to_s sur les non-chaînes. –

0

C'est juste irb - Je ne pense pas que vous pouvez contrôler le formatage return. Vous pouvez toujours utiliser print ou puts pour l'afficher comme vous le souhaitez.

1

Une autre option est de commencer RIR avec l'option noinspect:

C:\>irb --noinspect 
irb(main):001:0> Object.methods.to_yaml 
=> --- 
- instance_method 
- yaml_tag_read_class 
..... 
- constants 
- is_a? 

irb(main):002:0> 
1

La bibliothèque Ruby yaml inclut la commande "y", qui prend en charge à la fois le yamlizing et le formatage:

y object.methods.sort 
Questions connexes