#p is to #inspect as #pp is to?

I have this as a lone method, but it seems to me there should already
be a way to do this with the ‘pp’ lib. (If not perhaps we could add
it?)

require ‘pp’
require ‘stringio’

module Kernel

Returns a pretty-printed string of the object. Requires libraries

+pp+ and

+stringio+ from the Ruby standard library.

The following code pretty-prints an object (much like +p+ plain-

prints an

object):

pp object

The following code captures the pretty-printing in +str+ instead

of

sending it to +STDOUT+.

str = object.pp_s

CREDIT Noah Gibbs

CREDIT Gavin S.

def pp_s
pps = StringIO.new
PP.pp(self, pps)
pps.string
end

end

I have this as a lone method, but it seems to me there should already
be a way to do this with the ‘pp’ lib. (If not perhaps we could add
it?)

I believe that pp calls Object#pretty_print - the source will tell you
more.

Dan.

On Nov 30, 2007 3:17 PM, Daniel S. [email protected] wrote:

I have this as a lone method, but it seems to me there should already
be a way to do this with the ‘pp’ lib. (If not perhaps we could add
it?)

I believe that pp calls Object#pretty_print - the source will tell you
more.

At least since 1.8.6 that method exists.

On Nov 30, 1:17 am, “Daniel S.” [email protected] wrote:

I have this as a lone method, but it seems to me there should already
be a way to do this with the ‘pp’ lib. (If not perhaps we could add
it?)

I believe that pp calls Object#pretty_print - the source will tell you
more.

I looked at that and didn’t see how that would help. As it says…

“To define your customized pretty printing function for your classes,
redefine a method pretty_print(pp) in the class. It takes an argument
pp which is an instance of the class PP. The method should use
PP#text, PP#breakable, PP#nest, PP#group and PP#pp to print the
object.”

Don’t see off-hand how that can help easily get a string of what it
would output.

Thanks,
T.

On Nov 30, 2007 4:17 PM, Trans [email protected] wrote:

I looked at that and didn’t see how that would help. As it says…

“To define your customized pretty printing function for your classes,
redefine a method pretty_print(pp) in the class. It takes an argument
pp which is an instance of the class PP. The method should use
PP#text, PP#breakable, PP#nest, PP#group and PP#pp to print the
object.”

Don’t see off-hand how that can help easily get a string of what it
would output.

Sorry, i had the wrong method in mind, what you want is most likely
Object#pretty_inspect
Example:
puts (1…30).to_a.pretty_inspect

Does that help?

^ manveru

On Nov 30, 2:58 am, “Michael F.” [email protected] wrote:

Don’t see off-hand how that can help easily get a string of what it
would output.

Sorry, i had the wrong method in mind, what you want is most likely
Object#pretty_inspect
Example:
puts (1…30).to_a.pretty_inspect

Does that help?

w00t! w00t!

thanks manveru!

T.