クラスマクロ

こちらの記事のクラスマクロについて考えてみた。
http://d.hatena.ne.jp/UNKK/20110801/p1

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

class Module
  def my_macro(arg)
    self.class.instance_eval do
      define_method("Gorira" + arg.to_s) do
         "Gorira" + arg.to_s
      end
    end
  end
end

class C
  my_macro :x
end

puts C.Gorirax
#=> Gorirax

意図している挙動になっているか自信は無いけどこういうことかな?