Quand je crée un nouveau tableau / hash dans irb , il affiche un bon format pour montrer la structure, ex.
["value1", "value2", "value3"] {"key1" => "value1"}
… mais quand j’essaie d’imprimer mes variables en utilisant des puts
, je les récupère:
value1 value2 value3 key1 value1
Je suppose que ce n’est pas la bonne commande pour ce que je veux, mais qu’est-ce que c’est? Je veux pouvoir voir mes variables dans irb dans le premier format, pas le second.
Vous pouvez soit utiliser la méthode inspect
:
a=["value1", "value2", "value3"] puts a.inspect
Ou, mieux encore, utilisez la librairie pp (pretty print):
require 'pp' a=["value1", "value2", "value3"] pp a
Vous pouvez également utiliser la méthode y
qui convertit les entrées en Yaml. Cela produit une très belle sortie …
>> data = { 'dog' => 'Flemeale', 'horse' => 'Gregoire', 'cow' => 'Fleante' } => {"cow"=>"Fleante", "horse"=>"Gregoire", "dog"=>"Flemeale"} >> y data --- cow: Fleante horse: Gregoire dog: Flemeale
La jolie copie fonctionne bien, mais le bijou Awesome_Print est encore meilleur! Vous devrez require awesome_print
mais il gère require awesome_print
les hachages et les tableaux nesteds et les colore dans le terminal en utilisant «ap» au lieu de «p» pour placer la sortie.
Vous pouvez également l’inclure dans votre ~ / .irbrc pour que cela soit la méthode par défaut pour afficher les objects:
require "awesome_print" AwesomePrint.irb!
Essayez
>> a = ["value1", "value2", "value3"] => ["value1", "value2", "value3"] >> a.inspect => "[\"value1\", \"value2\", \"value3\"]" >> a = {"key1" => "value1"} => {"key1"=>"value1"} >> a.inspect => "{\"key1\"=>\"value1\"}"
Vous pouvez également utiliser la méthode p () pour les imprimer:
>> pa {"key1"=>"value1"}
Mon outil de prédilection pour cela est «Pretty Print» et la méthode pp
require 'pp' # <- 'Pretty Print' Included in ruby standard library pp({ :hello => :world, :this => ['is', 'an', 'array'] }) => {:hello=>:world, :this=>["is", "an", "array"]}