module Base
def show_send
puts "__send__ = #{self.class.__send__ :class_variable_get ,:@@__base_val}"
end
def show_class_val
puts "@@ = #{@@__base_val_class}"
end
def self.included(mod)
mod.class_eval do |_kls|
class << _kls
def init(val)
self.__send__ :class_variable_set ,:@@__base_val,val
@@__base_val_class = val
end
end
end
end
end
class Aaa
include Base
init :aaa_some
end
class Bbb
include Base
init :bbb_some
end
a = Aaa.new
b = Bbb.new
a.show_send
b.show_send
a.show_class_val
b.show_class_val
======
__send__ = aaa_some
__send__ = bbb_some
@@ = bbb_some
@@ = bbb_some