From: Sam Roberts Date: 2005-02-25T12:51:21+09:00 Subject: Re: Requesting addition to IRB (configurable standard output) 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 > >