From: Ilan Berci Date: 2007-03-30T00:53:09+09:00 Subject: Re: Newbie question about dynamic class overriding Ilan Berci wrote: > > irb(main):001:0> class A > irb(main):002:1> def send; "send"; end > irb(main):003:1> end > => nil > irb(main):004:0> a = A.new > => # > irb(main):005:0> def a.send; super + '_version2' ; end > => nil > irb(main):006:0> a.send > => "send_version2" > irb(main):007:0> A.new.send > => "send" > > Emil, My apologies, your title asked to do this dynamically, so this is probably what you want: irb(main):001:0> class A irb(main):002:1> end => nil irb(main):003:0> A.module_eval(%q{class << self; def send2(str); str; end; end})=> nil irb(main):004:0> A.send2 ArgumentError: wrong number of arguments (0 for 1) from (irb):4:in `send2' from (irb):4 from :0 irb(main):005:0> A.send2("whoops") => "whoops" your question is a little confusing as class definition itself is dynamic in ruby.. but I guess this is what you want by adding a class method "dynamically" ilan -- Posted via http://www.ruby-forum.com/.