Why does instance_eval interfere with extend? Should it? If I remove
instance_eval, or place extend before it, meth1 in Klass is overriden
with meth1 in ExtMod. Ruby 1.6.8 Windows. Thanks,
module ExtMod
def meth1; puts ‘C - ExtMod meth1’; end
def meth2; puts ‘D - ExtMod meth2’; end
end
class Klass
def meth1; puts ‘A - Klass meth1’; end
end
s = "def meth1; puts ‘B - instance_eval meth1’; end"
a=Klass.new
a.meth1 #-> A - Klass meth1
a.instance_eval(s)
a.meth1 #-> B - instance_eval meth1
a.extend(ExtMod)
a.meth1 #-> B - instance_eval meth1
a.meth2 #-> D - ExtMod meth2
- Jim Davis -