Рубиновый эквивалент Perl Data :: Dumper - PullRequest
17 голосов
/ 29 января 2010

Я изучаю, что в Ruby & Perl есть очень удобный модуль Data :: Dumper, который позволяет рекурсивно анализировать структуру данных (например, хэш) и печатать ее. Это очень полезно при отладке. Есть ли что-то похожее на Ruby?

Ответы [ 3 ]

19 голосов
/ 29 января 2010

Загляните в пп

пример:

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

есть также метод проверки, который также прекрасно работает

  x = { :a => [1,2,3, {:foo => bar}]}
  puts x.inspect
3 голосов
/ 29 января 2010

Обычно я использую дамп YAML, если мне нужно что-то быстро проверить.

В irb синтаксис просто y obj_to_inspect. В обычном приложении Ruby вам может понадобиться добавить require 'YAML' в файл, не уверен.

Вот пример в 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
>> 

Последний => nil просто означает, что метод ничего не возвращал. Это не имеет ничего общего с вашей структурой данных.

2 голосов
/ 29 января 2010

Вы можете использовать Маршал , амаршал , YAML

...