On Sunday 31 October 2004 03:02 pm, David A. Black wrote: | Hi -- | | On Mon, 1 Nov 2004, trans. (T. Onoma) wrote: | > class Numeric | > def succ | > self + 1 | > end | > end | > | > class Integer | > undef_method( :succ ) | > end | > | > 2.class #=> Fixnum | > 2.succ | > NoMethodError: undefined method `succ' for 1:Fixnum | > from (irb):10 | > | > | > Shouldn't it be able to find #succ in the ancestor? | | From 'ri undef_method': | | ---------------------------------------------------- | Module#undef_method | undef_method(symbol) => self | ------------------------------------------------------------------------ | Prevents the current class from responding to calls to the named | method. Contrast this with +remove_method+, which deletes the | method from the particular class; Ruby will still search | superclasses and mixed-in modules for a possible receiver. Sigh. So I should use #remove_method then. Okay. That's bit me again. Yes, I know this. But I use it rarely, and when I do I keep getting confused about which is which. The above is terribly written. The statement after the semicolon doesn't have a clear reference. Is the semicolon supposed to clue me in? That's weak, and one wonders which of the two will "still search". Moreover, it says _current class_, not _current class and all subclasses thereof_, so that seems misleading too. Anyway, thanks David! T.