How do I use define_method to create class methods?

前端 未结 6 1123
孤城傲影
孤城傲影 2020-11-30 20:34

This is useful if you are trying to create class methods metaprogramatically:

def self.create_methods(method_name)
    # To create instance methods:
    defi         


        
6条回答
  •  失恋的感觉
    2020-11-30 20:57

    I prefer using send to call define_method, and I also like to create a metaclass method to access the metaclass:

    class Object
      def metaclass
        class << self
          self
        end
      end
    end
    
    class MyClass
      # Defines MyClass.my_method
      self.metaclass.send(:define_method, :my_method) do
        ...
      end
    end
    

提交回复
热议问题