2010-01-29 6 views
16

Sto imparando Ruby & Perl ha questo modulo molto conveniente chiamato Data :: Dumper, che consente di analizzare ricorsivamente una struttura dati (come l'hash) & consentono di stamparlo. Questo è molto utile durante il debug. C'è qualcosa di simile a Ruby?Ruby equivalente di dati Perl :: Dumper

risposta

18

Guardare in pp

esempio:

require 'pp' 
    x = { :a => [1,2,3, {:foo => bar}]} 
    pp x 

c'è anche il metodo che funziona anche abbastanza bene

x = { :a => [1,2,3, {:foo => bar}]} 
    puts x.inspect 
2

è possibile utilizzare Marshal, amarshal, YAML

+0

BTW, grazie per tutti quei moduli. Questa è davvero una buona informazione che potrei usare. – John

3

ispezionare Io di solito uso un YAM L scarico se ho bisogno di controllare rapidamente qualcosa.

In irb la sintassi è semplicemente y obj_to_inspect. In una normale app Ruby, potrebbe essere necessario aggiungere un file require 'YAML' al file, non sono sicuro.

Ecco un esempio in irb:

>> my_hash = {:array => [0,2,5,6], :sub_hash => {:a => 1, :b => 2}, :visible => true} 
=> {:sub_hash=>{:b=>2, :a=>1}, :visible=>true, :array=>[0, 2, 5, 6]} 
>> y my_hash # <----- THE IMPORTANT LINE 
--- 
:sub_hash: 
    :b: 2 
    :a: 1 
:visible: true 
:array: 
- 0 
- 2 
- 5 
- 6 
=> nil 
>> 

La finale => nil significa semplicemente che il metodo non ha restituito nulla. Non ha nulla a che fare con la tua struttura dati.