Ruby – Putting the results of pp (or anything outputted to console) into a string

ruby

We know

require 'pp'
a=["value1", "value2", "value3"]
pp a

pretty prints the array as an output to the console. How do I get that pretty output into a string (a string containing the newlines that makes things pretty, etc.)?

…purpose being to return that pretty string from a method.

Best Answer

string_value = a.pretty_inspect

#pretty_inspect also comes along when you first require 'pp' - See: http://ruby-doc.org/stdlib-2.1.0/libdoc/pp/rdoc/Kernel.html#method-i-pretty_inspect

If you want the version that is outputted to the irb console that is

 string_value = a.inspect

and doesn't have any requires necessary.