From: "trans. (T. Onoma)" Date: 2005-01-17T21:17:46+09:00 Subject: Re: Passive Arguments On Monday 17 January 2005 06:46 am, benny wrote: | trans. (T. Onoma) wrote: | > In other words: | > | > def w | > puts "Advising" | > super  # calls the advised method | > end | > | > were exactly the same as doing: | > | > def w(*args, &blk) | > puts "Advising" | > super(*args, &blk)  # calls the advised method | > end | | I think this would be too much magic behind the scenes. | At the moment super ist behaving like just another method, i.e. | you can imagine how it behaves. Yes, well almost -- 'super' without args will pass on method args. | what if super may have arguments but you don't want to give any to it? | making super != super() is not an option. Hmm...maybe I was not clear enough on this point (or I misunderstand) using 'super()' would NOT pass args to parent method, but just 'super' does pass arguments --just as it is now. The change only comes in the 'def w', where no arguments passes them through unchanged too. | in the most cases where I passed the same arguments to super that are given | to the method itself I figured out (after a while :) ) that I could have | made a better class design. IMHO it is more logical and usual to have no | equality in arguments. Interesting thought, but it seems Matz thought it was common enough to have special behavior on super, so I'm not sure.