methods/class_new_as_a_method_object.rb

tests/_examples/methods/class_new_as_a_method_object.rb in the metorex repository.

class Guard < ::Mutex
  NEW_MUTEX_METHOD = Guard.method(:new)

  def self.new
    NEW_MUTEX_METHOD.call
  end
end
p Guard.new.class
p Guard.method(:new).arity
held = Mutex.method(:new)
p held.call.class
class Plain
  NEW = method(:new)
end
p Plain::NEW.call.class

Output:

Guard
0
Thread::Mutex
Plain