越水です。

下のAは無事実行できますが、Bだと`nested method definition'になります。
両者は意味的に異なるのでしょうか?

# A
class MyObject
  def MyObject.meth(arg)
    def arg.doIt
      p self
    end
    arg
  end
end

obj = MyObject.meth('a')
obj.doIt

# B
class MyObject
  def MyObject.meth(arg)
    class <<arg
      def doIt
	p self
      end
    end
    arg
  end
end

obj = MyObject.meth('a')
obj.doIt

# 越水
# greentea / fa2.so-net.ne.jp