2011-06-28 24 views

Respuesta

25

El rubí biblioteca estándar contiene PP (abreviatura de "Pretty Print"), que da formato a estructuras mucho mejor que el estándar inspeccionar:

http://www.ruby-doc.org/stdlib/libdoc/pp/rdoc/index.html

Es necesario require 'pp' en la parte superior de su archivo fuente antes de poder usarlo, y luego simplemente reemplace p obj con pp obj en su código.

¡Lo encuentro realmente útil para hashes y matrices en particular!

+1

PP también agregará pretty_inspect() al Módulo Kernel, por lo que simplemente puede reemplazar las llamadas a inspeccionar() con eso. – tjbp

5

Además de la solución 'pp', yaml puede ser una solución.

Probar:

require 'yaml' 
puts [1,2,3=>'three'].to_yaml 

Se obtiene:

--- 
- 1 
- 2 
- 3: three 

y un enfoque completamente diferente: Escriba su propia inspección de código si usted tiene un problema inspeccionar con una clase específica

Ejemplo:

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 

Se obtiene

Hi, I'm the objected created at 2011-06-28 12:48:38 +0100. That's 5.0 seconds ago 
+1

Me gusta esta solución mejor. Ni siquiera tengo que requerir 'yaml' cuando uso la consola de rieles. Gracias por publicar –

0

Esto va a funcionar y verse bien :)

en su Gemfile:

group :development do 
    gem 'table_print', '~> 1.5.3' 
end 

en su opinión:

<pre> 
<%= TablePrint::Printer.new(@users, []).table_print %> 
</pre> 
1

como @tjbp dijo, simplemente use pretty_inspect() en lugar de inspeccionar()

le dará bonitos saltos de línea y sangría

Cuestiones relacionadas