From: Tomasz Wegrzanowski Date: 2001-12-29T07:53:38+09:00 Subject: [ruby-talk:29596] extending method of class A to support arguments of class B by promoting `self' to class B (Names of classes chosen arbitrarily, just to show issue) Class Real has method `*' that can use argument Real. I make class Complex. Class Complex also has function `*' which can take either Real or Complex argument. Object Complex can be created from Real by Complex.new(real_object). I want to tell Ruby, that when Real object is called with Complex argument it should be promoted to Complex and then appropriate Complex method be called. The only method I found is renaming all such methods to something like `old_multiply', and redefining Real `*'. Is there any better way ?