いまいちメリットが分からないんだけど・・・こういうこと(*)できるから便利ってこと?
(*) 同一クラス名の同一メソッド名で異なる値を返すことができる
class Test def initialize(name) sing = class << self; self end sing.class_eval "def name; #{name.to_s.inspect}; end" end end a = Test.new("basyuraA") puts a.name #=> basyuraA b = Test.new("basyuraB") puts b.name #=> basyuraB