[#4479] Requesting addition to IRB (configurable standard output) — Sascha Ebach <se@...>

Hello,

13 messages 2005/02/24
[#4482] Re: Requesting addition to IRB (configurable standard output) — Sam Roberts <sroberts@...> 2005/02/25

Quoting se@digitale-wertschoepfung.de, on Fri, Feb 25, 2005 at 01:22:34AM +0900:

[#4483] Re: Requesting addition to IRB (configurable standard output) — Eric Hodel <drbrain@...7.net> 2005/02/25

On 24 Feb 2005, at 19:51, Sam Roberts wrote:

[#4488] Re: Requesting addition to IRB (configurable standard output) — Sam Roberts <sroberts@...> 2005/02/26

Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 02:43:31AM +0900:

[#4489] Re: Requesting addition to IRB (configurable standard output) — Eric Hodel <drbrain@...7.net> 2005/02/26

On 25 Feb 2005, at 16:03, Sam Roberts wrote:

Re: implementing #to_pp, and pp.rb doc diffs (Re: Requesting addition to IRB (configurable standard output))

From: Eric Hodel <drbrain@...7.net>
Date: 2005-02-26 06:49:49 UTC
List: ruby-core #4493
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

Attachments (1)

PGP.sig (186 Bytes, application/pgp-signature)

In This Thread