Quand je crée un nouveau tableau/hachage dans irb, il imprime un format sympa pour montrer la structure, ex.
["value1", "value2", "value3"]
{"key1" => "value1"}
... mais quand j'essaie d'imprimer mes variables en utilisant puts
, je les fais réduire:
value1
value2
value3
key1
value1
Je suppose que puts
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 dans le second.
Vous pouvez soit utiliser la méthode inspect
:
a=["value1", "value2", "value3"]
puts a.inspect
Ou, mieux encore, utilisez la bibliothèque pp (pretty print):
require 'pp'
a=["value1", "value2", "value3"]
pp a
Une autre chose que vous pouvez faire est d'utiliser la méthode y
qui convertit l'entrée en Yaml. Cela produit une sortie assez agréable ...
>> data = { 'dog' => 'Flemeale', 'horse' => 'Gregoire', 'cow' => 'Fleante' }
=> {"cow"=>"Fleante", "horse"=>"Gregoire", "dog"=>"Flemeale"}
>> y data
---
cow: Fleante
horse: Gregoire
dog: Flemeale
La jolie impression fonctionne bien, mais la gemme Awesome_Print est encore meilleure! Tu vas devoir require awesome_print
mais il gère magnifiquement les hachages et les tableaux imbriqués et les colore dans le terminal en utilisant 'ap' au lieu de 'p' pour mettre la sortie.
Vous pouvez également l'inclure dans votre ~/.irbrc pour avoir ceci comme méthode par défaut pour afficher les objets:
require "awesome_print"
AwesomePrint.irb!
Essayez .inspect
>> 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:
>> p a
{"key1"=>"value1"}
Mon outil personnel de choix 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"]}