Mam duży skrót z zagnieżdżonymi tablicami i skrótami. Chciałbym go po prostu wydrukować, aby był „czytelny” dla użytkownika.
Chciałbym, żeby to było coś w rodzaju to_yaml - to całkiem czytelne - ale wciąż zbyt techniczne.
Ostatecznie będą to użytkownicy końcowi, którzy będą musieli czytać te fragmenty danych, więc muszą zostać sformatowane w sposób czysty.
Jakieś sugestie?
ruby
ruby-on-rails-3
Adam O'Connor
źródło
źródło
Odpowiedzi:
Użyj,
pp
jeśli potrzebujesz wbudowanego rozwiązania i chcesz po prostu rozsądnych podziałów linii.Użyj awesome_print, jeśli możesz zainstalować klejnot. (W zależności od użytkowników możesz chcieć skorzystać z
index:false
opcji wyłączenia wyświetlania indeksów tablic).źródło
Jeśli masz JSON, polecam,
JSON.pretty_generate(hash)
ponieważ jest prostszy niż awesome_print , świetnie wygląda wpre
tagu i pozwala na łatwe kopiowanie ze strony internetowej. (Zobacz także: Jak „ładnie” sformatować wyjście JSON w Ruby on Rails? )źródło
puts JSON.pretty_generate(hash)
Kolejne rozwiązanie, które u mnie działa lepiej niż
pp
lubawesome_print
:źródło
Pry::ColorPrinter.pp(obj)
zapisuje do standardu, ale może przyjmować dodatkowe parametry, w tym miejsce docelowe. Na przykładPry::ColorPrinter.pp(obj, a_logger)
Jeśli nie masz żadnej fantazyjnej akcji klejnotu, ale masz JSON, ta linia CLI będzie działać na hashu:
puts JSON.pretty_generate(my_hash).gsub(":", " =>")
źródło
Skorzystaj z powyższych odpowiedzi, jeśli drukujesz dla użytkowników.
Jeśli chcesz tylko wydrukować go dla siebie w konsoli, sugeruję użycie klejnotu łamiącego zamiast irb. Oprócz ładnego drukowania, pry ma również wiele innych funkcji (sprawdź rzuty poniżej)
I sprawdź ten railscast:
http://railscasts.com/episodes/280-pry-with-rails
źródło
Łatwe do zrobienia z json, jeśli ufasz, że twoje klucze są rozsądne:
źródło
Używając Pry, wystarczy dodać następujący kod do swojego ~ / .pryrc:
źródło
Ze wszystkich klejnotów, które wypróbowałem,
show_data
klejnot działał najlepiej dla mnie, teraz używam go intensywnie do rejestrowania skrótu parametrów w Railsach prawie przez cały czasźródło
W przypadku dużych zagnieżdżonych skrótów ten skrypt może być pomocny. Drukuje zagnieżdżony hash w ładnej składni podobnej do Pythona z tylko wcięciami, aby ułatwić kopiowanie.
Przykładowe użycie:
Zwracana wartość to liczba (3) wszystkich wartości końcowego poziomu zagnieżdżonego skrótu.
źródło
Oto inne podejście wykorzystujące json i rouge:
(analizuje odpowiedź z np.
RestClient
)źródło
W Railsach
Jeśli potrzebujesz
inspect
na obiektach w Hashinspect
metodę w swoich obiektach, tak jak powinieneś... to działa świetnie! (Im większy i bardziej zagnieżdżony jest twój obiekt Hash).
Na przykład:
pretty_inspect
pochodzi z PrettyPrint , którego railsy zawierają domyślnie. Tak więc nie potrzeba żadnych klejnotów ani konwersji do formatu JSON.Nie w szynach
Jeśli nie jesteś w Railsach lub jeśli powyższe zawodzi z jakiegoś powodu, spróbuj
require "pp"
najpierw użyć . Na przykład:Pełny przykład
pretty_inspect
Przykład Big Ol ' ed Hash z mojego projektu z zredagowanym tekstem specyficznym dla projektu z moich sprawdzonych obiektów:źródło
W Railsach tablice i skróty w Rubim mają wbudowane funkcje to_json. Użyłbym JSON tylko dlatego, że jest bardzo czytelny w przeglądarce internetowej, np. Google Chrome.
Biorąc to pod uwagę, jeśli obawiasz się, że wygląda zbyt „technicznie”, prawdopodobnie powinieneś napisać własną funkcję, która zastąpi nawiasy klamrowe i kwadratowe w twoich hashach i tablicach odstępami i innymi znakami.
Wyszukaj funkcję gsub, aby znaleźć bardzo dobry sposób na zrobienie tego. Baw się różnymi postaciami i różnymi ilościami białych znaków, aż znajdziesz coś, co wygląda atrakcyjnie. http://ruby-doc.org/core-1.9.3/String.html#method-i-gsub
źródło
{"programming_language":{"ruby":{},"python":{}}}