Kiedy uruchamiam prosty skrypt Ruby, jaki jest najłatwiejszy sposób na zrzucenie pól obiektu na konsolę?
Szukam czegoś podobnego do PHP, print_r()
które również będzie działać z tablicami.
ruby
printf-debugging
roryf
źródło
źródło
inspect
metody do klasy pozwala określić sposób wyświetlania atrybutów klasy, zamiast polegać na domyślnych wynikach. Wiele klas nie implementuje go dobrze, ale może być bardzo przydatne podczas debugowania. Ruby cofnie się,to_s
jeśli nie będzie w stanie znaleźć metody inspekcji.server = TCPServer.new 0 ; puts server.inspect #<TCPServer:fd 9> => nil
. nie będzie działać w przypadku najbardziej złożonych obiektów.var_dump
ekwiwalentu php w rubinie, okazało się, żepp
jest to bardzo przydatne w tym przypadku, spójrz tutaj - stackoverflow.com/questions/6501506/ruby-inspect-readability/…p object
jest to pseudonim dlaputs object.inspect
Możesz znaleźć zastosowanie dla
methods
metody, która zwraca tablicę metod dla obiektu. To nie to samoprint_r
, ale czasem przydatne.źródło
instance_methods
od danej klasy, aby uzyskać unikalne metody:(String.instance_methods - Object.instance_methods).sort
.methods.sort
jest bardzo przydatne. Czy istnieje jakiś „inteligentny” sposób szybkiego pokazania metod, które są (niejasno) unikalne dla tego konkretnego obiektu? Na przykład metoda taka.to_s
może się często pojawiać, więc nie jest aż tak przydatna, ale niektóre z nich mogą być bardzo przydatne w przypadku niektórych metod dla niektórych obiektów. Zwłaszcza w przypadkach, które nie są oczywiste. Czy jest jakiś sposób, aby szybko je zdobyć? (w tym przypadku mamPG::Result
obiekt i chcę szybko ocenić prawdopodobne metody, które mogłyby okazać się przydatne.to_yaml
Metoda wydaje się być czasami użyteczne:zwroty
(Czy zależy to od
YAML
załadowania jakiegoś modułu? Czy to zazwyczaj będzie dostępne?)źródło
to_yaml
wymaga załadowania modelu YAML. Jest to jednak część standardowej biblioteki Ruby.Dokument Ruby dla
p
.źródło
Jeśli szukasz tylko zmiennych instancji w obiekcie, może to być przydatne:
lub jako jednolinijka do kopiowania i wklejania:
źródło
stawia foo.to_json
może się przydać, ponieważ moduł json jest domyślnie ładowany
źródło
to_json
nie jest domyślnie ładowany w 1.8.7 lub 1.9.2.Jeśli chcesz wydrukować już wcięty JSON :
źródło
Natknąłem się na ten wątek, ponieważ szukałem czegoś podobnego. Lubię odpowiedzi i dali mi kilka pomysłów, więc przetestowałem metodę .to_hash i bardzo dobrze działałem również w przypadku użycia. soo:
object.to_hash
źródło
źródło
undefined method 'attributes' for ...
object.attributes_name
nie działało, aleobject.attributes
robi, aby uzyskać niezły skrót kluczy i wartości. To mi pomogło, dzięki!