From: Eric Hodel Date: 2005-02-26T15:49:49+09:00 Subject: Re: implementing #to_pp, and pp.rb doc diffs (Re: Requesting addition to IRB (configurable standard output)) --Apple-Mail-35-96870201 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 25 Feb 2005, at 18:55, Sam Roberts wrote: > Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 10:24:52AM +0900: >> On 25 Feb 2005, at 16:03, Sam Roberts wrote: >>> Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 02:43:31AM >>> +0900: >>>> On 24 Feb 2005, at 19:51, Sam Roberts wrote: >>>>> module Kernel >>>>> def to_pp >>>>> s = PP.pp(self, '') >>>>> s.chomp! >>>>> s >>>>> end >>>>> alias_method :to_irb :to_pp >>>>> end >>>> >>>> Object#prettyprint >>> >>> $ irb -r pp >>> irb(main):001:0> [1,2,3].prettyprint >>> NoMethodError: undefined method `prettyprint' for [1, 2, 3]:Array >>> from (irb):1 >> >> Oh that's right its pretty_print and it takes an arg, making it less >> useful than my first glance through pp.rb revealed. >> >> I resubmit with Object#pretty_print_inspect > > Did you try? It only works for builtins. If you want fancy printing for your objects you must define pretty_print. > It would be nice if this worked. Perhaps it should be an RCR, or is > there actually a method that does this that neither of us have found? The problem is, how do you write a generic way of prettily printing every object you could come across? #inspect is a good default, but being prettier than that is hard. Instead, PrettyPrint leaves it up to you. -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 --Apple-Mail-35-96870201 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFCIBv9MypVHHlsnwQRAip8AJ4kcXrkSH0RJ3pl6tXnNvJuW6HAeACeIhGw CFa6ee941o0+AkyUvkTUIE4= =FylT -----END PGP SIGNATURE----- --Apple-Mail-35-96870201--