元编程:如何访问元类中方法的参数

时间:2017-09-27 16:45:31

标签: ruby metaprogramming

我正在学习ruby元编程的元类概念。我试图在元类中动态定义方法,但我面临的问题是我无法访问" name"里面的元类。

以下是我的代码。

class Abc

  def add_method(name) 

      class << self  

         define_method "#{name}" do 

         end 

      end 
  end
end

a = Module.const_get("Abc").new
a.add_method("my_method")
a.my_method

1 个答案:

答案 0 :(得分:0)

确定。经过一些在线调试后得到了解以下是解决方案

class Abc    
  def add_method(name)    
      meta_class = class << self    
        self
      end
      meta_class.class_eval do
         define_method "#{name}" do 

         end    
     end 
  end
end

a = Module.const_get("Abc").new
a.add_method("my_method")
a.my_method