Feature #11491
closedAdd descriptive methods to Method & UnboundMethod
Description
(Using Ruby Version 2.2.2)
I would like Method and Unbound Method to provide methods to provide the following additional information:
-
Method#instance_method?
andUnboundMethod#instance_method?
to indicate whether the method is an instance or a class method -
UnboundMethod#receiver
to provide the type required to be passed toUnboundMethod#bind
I believe this information is already probably readily available, because it can be gleaned from Method#to_s
and UnboundMethod#to_s
. For example:
> String.instance_method(:taint)
=> #<UnboundMethod: String(Kernel)#taint>
The above output tells us the eligible receiver type is String, the owner is Kernel, the "#" indicates an instance_method, and the name is taint. However, with the current UnboundMethod API, we can only tell the owner and the name.
It would be very useful to also see the receiver type and whether the method is an instance_method without performing Regex on the output of to_s
.
In particular, UnboundMethod#receiver
would be useful, even though UnboundMethod does not logically have a receiver, because it would make it easier to tell what type of objects can be passed to UnboundMethod#bind
without raising a TypeError.