
Untitled
By: a guest on
May 5th, 2012 | syntax:
None | size: 0.49 KB | hits: 9 | expires: Never
How to check what class implements specified method in Ruby?
require 'net/http'
req = Net::HTTP::Get.new( "http://localhost:8080/" )
req.basic_auth( "user", "password" )
req.method(:basic_auth).owner
# => Net::HTTPHeader
Kernel.instance_method(:method).bind(req).(:basic_auth).owner
# => Net::HTTPHeader
class Object
def which method
self.class.ancestors.find { |a| a.instance_methods(false).include? method.to_s }
end
end
puts req.which :basic_auth #=> Net::HTTPHeader