それ以上いくとmoduleで全部書き直すことになってrubyじゃなくなる


module Oya
  attr_accessor :x,:ko
  module Ko
    def func
       @x
    end
  end
  def init
    @x = 3
    @ko = self
    @ko.extend Ko
  end
  def self.extended mod
    mod::init
  end
end

a = Object.new.extend Oya
p a.ko.x #=> 3 
a.x = 9
p a.ko.x #=> 9