Czy istnieje sposób na zwiększenie czytelności wyniku inspekcji?Ruby Sprawdź czytelność?
W języku Perl znajduje się Data::Dumper
, dzięki czemu dane wyjściowe są łatwiejsze do odczytania.
Czy istnieje sposób na zwiększenie czytelności wyniku inspekcji?Ruby Sprawdź czytelność?
W języku Perl znajduje się Data::Dumper
, dzięki czemu dane wyjściowe są łatwiejsze do odczytania.
Spróbuj awesome_print: http://www.rubyinside.com/awesome_print-a-new-pretty-printer-for-your-ruby-objects-3208.html
Ruby biblioteka standardowa zawiera PP (skrót od "Pretty print"), który formatuje struktur znacznie lepsze niż standardowe skontrolować:
http://www.ruby-doc.org/stdlib/libdoc/pp/rdoc/index.html
Musisz require 'pp'
u góry pliku źródłowego, zanim będzie można go użyć, a następnie po prostu zastąp kod p obj
przez pp obj
.
Uważam, że jest to szczególnie użyteczne szczególnie w przypadku skrótów i tablic!
Oprócz rozwiązania "pp", yaml może być rozwiązaniem.
Spróbuj:
require 'yaml'
puts [1,2,3=>'three'].to_yaml
Otrzymasz:
---
- 1
- 2
- 3: three
i kompletny odmienne podejście: Napisz wglądu do kodu jeśli masz wglądu-problem z konkretnej klasy
Przykład:
class MyTest
def initialize()
@created = Time.now
end
def inspect()
"Hi, I'm the objected created at #{@created}. That's #{Time.now - @created} seconds ago"
end
end
x = MyTest.new
sleep 5
puts x.inspect
Otrzymasz
Hi, I'm the objected created at 2011-06-28 12:48:38 +0100. That's 5.0 seconds ago
Najbardziej lubię to rozwiązanie. Nie muszę nawet wymagać "yaml" podczas korzystania z konsoli szyn. Dzięki za publikację –
To będzie działać i wyglądać świetnie :)
w gemfile:
group :development do
gem 'table_print', '~> 1.5.3'
end
w widoku:
<pre>
<%= TablePrint::Printer.new(@users, []).table_print %>
</pre>
jak @tjbp powiedział: po prostu użyj pretty_inspect() zamiast inspekcji()
da ci to miłe złamanie linii i wcięcie
PP doda także pretty_inspect() do modułu jądra, więc możesz po prostu zastąpić wywołania inspect() tym. – tjbp