[#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: Requesting addition to IRB (configurable standard output)

From: Sam Roberts <sroberts@...>
Date: 2005-02-25 03:51:21 UTC
List: ruby-core #4482
Quoting se@digitale-wertschoepfung.de, on Fri, Feb 25, 2005 at 01:22:34AM +0900:
> Hello,
> 
> I was talking to Florian Gross on IRC about his Breakpoint library 
> http://rubyforge.org/projects/ruby-breakpoint/ which I (and many others) 
> use in Rails applications for testing and debbugging purposes.
> 
> I often use it to see what is going on with my objects. Sometimes they 
> are pretty big (filled with lots of data). The standard output of IRB 
> looks like #inspect output.
> 
> irb(main):006:0> [1,2,3].inspect
> => "[1, 2, 3]"
> 
> This can be really noisy if the objects that are inspected have a lot of 
> data in them (like a whole page of HTML).
> 
> It would be nice if this were configurable. There already is an option 
> --inspect for IRB. So what I am requesting is that one can define their 
> own "inspector" like this.


How about irb uses #to_irb if it exists, then #inspect if it doesn't.

So, if you like to see pp output instead of inspect, put this in your
~/.irbrc:

  module Kernel
    def to_pp
      s = PP.pp(self, '')
      s.chomp!
      s
    end
    alias_method :to_irb :to_pp
  end

If you like yaml (go figure):

  module Kernel
    alias_method :to_irb :to_yaml
  end

If you like yaml, but only for hashes:

  class Hash
    alias_method :to_irb :to_yaml
  end

everything else will continue to use #inspect.

I don't think this kind of hacking requires a cmd line option, but a
hook to allow folks to do it in their irbrc might be nice.

Cheers,
Sam

> irb --inspect=y
> or
> irb --inspect=pretty_print_inspect
> or
> irb --inspect=some_selfmade_inspector
> 
> irb --inspect would be equal to irb --inspect=inspect
> 
> given irb --inspect=y output would look like this:
> 
> $ irb -ryaml --inspect=y
> irb(main):002:0> [1,2,3]
> ---
> - 1
> - 2
> - 3
> 
> Do you think this would be worthy addition to IRB? Florian suggested to 
> ask on the ruby-core ML cause this is rather a feature that should be in 
> IRB than in ruby-breakpoint.
> 
> Thank you for considering
> 
> Sascha Ebach
> 
> 

In This Thread