Just wondering about instance variable scope and modules.
Download this source
module MyModule
def MyModule.mymethod(var)
@var = var
end
end
class AClz
include MyModule
end
class BClz
include MyModule
end
a = AClz.new
b1 = BClz.new
b2 = BClz.new
p MyModule.mymethod('mod')
p MyModule.instance_eval { @var }
p MyModule.class_eval { @var }
p a.class.class_eval { @var }
p b1.class.class_eval { @var }
p b2.class.class_eval { @var }
MyModule.mymethod('changed')
b2.class.class_eval { @var = 'again' }
p MyModule.instance_eval { @var }
p MyModule.class_eval { @var }
p a.class.class_eval { @var }
p b1.class.class_eval { @var }
p b2.class.class_eval { @var }
Running this outputs:
"mod"
"mod"
"mod"
nil
nil
nil
"changed"
"changed"
nil
"again"
"again"

