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