2012-04-05 3 views
3

У меня есть рекурсивный объект (Cucumber :: Rails :: World.scenario), который я бы хотел проверить (чтобы найти теги, принадлежащие текущему сценарию). scenario.inspect никогда не заканчивается, и pp scenario печатает так быстро, что даже с быстрой серией Ctrl - c он заполняет около трех тысяч строк. Как я могу ограничить вывод?Как ограничить вывод вызова ruby ​​`pp`?

ответ

0

Вставьте gets в определенные моменты (между небольшими кусками pp). Затем вы можете проходить через них медленно, вводя ввод после каждого фрагмента.

3

Используйте pretty_inspect, чтобы получить его в виде строки, а затем получить только первые п символов:

pp_output = scenario.pretty_inspect; nil 
puts pp_output[0..n]; nil 

Примечание задн nil сек причиной IRB, чтобы отобразить возвращаемое значение nil, а не весь объект, который очищает выход существенно.

Для еще большей гибкости, сохранить его в файл:

File.open "pp-output.txt", "w" do |f| 
    f.puts scenario.pretty_inspect 
end 

Затем просмотреть в пейджере по вашему выбору:

$ less pp-output.txt 
Смежные вопросы