动态添加ruby类方法或实例方法

我对 Ruby很新,所以还在学习.我正在研究如何动态添加方法,我成功地创建了实例方法,但是在创建类方法时并不成功.

这是我如何生成实例方法

class B
    def before_method
      puts "before method"
    end

    def self.run(method)
        send :define_method,method do
          before_method
          puts "method #{method}"
        end
    end
  end

  class A < B
    run :m
    run :n
  end

关于创建静态方法的最佳方法的任何想法?

我的最后一个任务是寻找为类方法创建“之前”和“之后”任务的最佳方法.

解决方法

这里重新使用类方法
class B
   def self.before_method
     puts "before method"
   end

  def self.run(method)
    define_singleton_method(method) do
      before_method
      puts "method #{method}"
    end
  end
end

更新:使用来自Ruby 1.9的define_singleton_method,它正确分配给eigenclass.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...