Actualize Method#inspect docs

This commit is contained in:
zverok 2019-12-21 22:31:30 +02:00 committed by Nobuyoshi Nakada
parent d78fcfb7ab
commit 5fa9c2eeb0
Notes: git 2019-12-22 23:18:04 +09:00

23
proc.c
View File

@ -2766,11 +2766,30 @@ rb_method_parameters(VALUE method)
* *
* Returns a human-readable description of the underlying method. * Returns a human-readable description of the underlying method.
* *
* "cat".method(:count).inspect #=> "#<Method: String#count>" * "cat".method(:count).inspect #=> "#<Method: String#count(*)>"
* (1..3).method(:map).inspect #=> "#<Method: Range(Enumerable)#map>" * (1..3).method(:map).inspect #=> "#<Method: Range(Enumerable)#map()>"
* *
* In the latter case, the method description includes the "owner" of the * In the latter case, the method description includes the "owner" of the
* original method (+Enumerable+ module, which is included into +Range+). * original method (+Enumerable+ module, which is included into +Range+).
*
* +inspect+ also provides, when possible, method argument names (call
* sequence) and source location.
*
* require 'net/http'
* Net::HTTP.method(:get).inspect
* #=> "#<Method: Net::HTTP.get(uri_or_host, path=..., port=...) <skip>/lib/ruby/2.7.0/net/http.rb:457>"
*
* <code>...</code> in argument definition means argument is optional (has
* some default value).
*
* For methods defined in C (language core and extensions), location and
* argument names can't be extracted, and only generic information is provided
* in form of <code>*</code> (any number of arguments) or <code>_</code> (some
* positional argument).
*
* "cat".method(:count).inspect #=> "#<Method: String#count(*)>"
* "cat".method(:+).inspect #=> "#<Method: String#+(_)>""
*/ */
static VALUE static VALUE