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

前端之家收集整理的这篇文章主要介绍了动态添加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.

原文链接:https://www.f2er.com/ruby/267152.html

猜你在找的Ruby相关文章