Feature #2018
[irb] BasicObject.new doesn't have an inspect
| Status: | Closed | Start date: | 08/31/2009 | |
|---|---|---|---|---|
| Priority: | Low | Due date: | ||
| Assignee: | % Done: | 100% |
||
| Category: | lib | |||
| Target version: | 2.0.0 |
Description
Using BasicObject.new in irb:
daniel@boviAir# ruby19 --version
ruby 1.9.2dev (2009-08-30 trunk 24718) [i386-darwin9.8.0]
daniel@boviAir# irb19 --version
irb 0.9.6(09/06/30)
daniel@boviAir# irb19
irb(main):001:0> BasicObject.new
Produce an Exception due to the fact that inspect doesn't exist in the BasicObject:
NoMethodError: undefined method `inspect' for #<BasicObject:0x4b2738>
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/inspector.rb:84:in `block in <module:IRB>'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/inspector.rb:30:in `call'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/inspector.rb:30:in `inspect_value'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/context.rb:259:in `inspect_last_value'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb.rb:309:in `output_value'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb.rb:158:in `block (2 levels) in eval_input'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb.rb:271:in `signal_status'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb.rb:154:in `block in eval_input'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:244:in `block (2 levels) in each_top_level_statement'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in `loop'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in `block in each_top_level_statement'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `catch'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `each_top_level_statement'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb.rb:153:in `eval_input'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb.rb:70:in `block in start'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb.rb:69:in `catch'
from /Users/danielbovensiepen/Programs/ruby19/lib/ruby/1.9.1/irb.rb:69:in `start'
from /Users/danielbovensiepen/Programs/ruby19/bin/irb19:12:in `<main>'Maybe IRB bug!!
In the attachment is a patch for catching this exception.
Associated revisions
* lib/irb/inspector.rb (IRB::INSPECTORS.def_inspector): support
object without #inspect defined. a patch from Daniel
Bovensiepen. [ruby-core:25200]
History
Updated by dblack (David Black) over 2 years ago
Hi -- On Mon, 31 Aug 2009, Daniel Bovensiepen wrote: > Bug #2018: [irb] BasicObject.new doesn't have an inspect > http://redmine.ruby-lang.org/issues/show/2018 Why is that a bug? David -- David A. Black / Ruby Power and Light, LLC / http://www.rubypal.com Ruby/Rails training, mentoring, consulting, code-review Latest book: The Well-Grounded Rubyist (http://www.manning.com/black2) September Ruby training in NJ has been POSTPONED. Details to follow.
Updated by hongli (Hongli Lai) over 2 years ago
I thought the whole point of BasicObject is that it doesn't have any methods.
Updated by matz (Yukihiro Matsumoto) over 2 years ago
Hi, In message "Re: [ruby-core:25201] Re: [Bug #2018] [irb] BasicObject.new doesn't have an inspect" on Mon, 31 Aug 2009 02:49:19 +0900, "David A. Black" <dblack@rubypal.com> writes: |> Bug #2018: [irb] BasicObject.new doesn't have an inspect |> http://redmine.ruby-lang.org/issues/show/2018 | |Why is that a bug? I think it's not the point. BasicObject has no method (with a few exception) by its definition. But irb should handle objects without inspect defined. matz.
Updated by dblack (David Black) over 2 years ago
On Mon, 31 Aug 2009, Yukihiro Matsumoto wrote: > Hi, > > In message "Re: [ruby-core:25201] Re: [Bug #2018] [irb] BasicObject.new doesn't have an inspect" > on Mon, 31 Aug 2009 02:49:19 +0900, "David A. Black" <dblack@rubypal.com> writes: > > |> Bug #2018: [irb] BasicObject.new doesn't have an inspect > |> http://redmine.ruby-lang.org/issues/show/2018 > | > |Why is that a bug? > > I think it's not the point. BasicObject has no method (with a few > exception) by its definition. But irb should handle objects without > inspect defined. Ah, OK -- I didn't catch onto that. Actually I really like doing: >> b = BasicObject.new in irb when I'm teaching 1.9 -- very dramatic way to demonstrate the basicness of BasicObject :-) But I can understand that it should probably be handled more gracefully. David -- David A. Black / Ruby Power and Light, LLC / http://www.rubypal.com Ruby/Rails training, mentoring, consulting, code-review Latest book: The Well-Grounded Rubyist (http://www.manning.com/black2) September Ruby training in NJ has been POSTPONED. Details to follow.
Updated by yugui (Yuki Sonoda) over 2 years ago
- Assignee set to keiju (Keiju Ishitsuka)
- Target version set to 2.0.0
It is not a bug. But I think enhancement for irb is possible. What kind of handling do you want?
Updated by matz (Yukihiro Matsumoto) over 2 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
Applied in changeset r24779.