Рубиновый эквивалент Perl Data::Dumper

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


person John    schedule 29.01.2010    source источник


Ответы (3)


Посмотрите в пп

пример:

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

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

  x = { :a => [1,2,3, {:foo => bar}]}
  puts x.inspect
person Daniel    schedule 29.01.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 просто означает, что метод ничего не вернул. Это не имеет ничего общего с вашей структурой данных.

person Doug Neiner    schedule 29.01.2010

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

person ghostdog74    schedule 29.01.2010
comment
Кстати, спасибо за все эти модули. Это действительно хорошая информация, которую я мог бы использовать. - person John; 29.01.2010