VOOZH about

URL: https://apidock.com/ruby/Method/arity

⇱ Method#arity - APIdock


method

arity

ruby latest stable - Class: Method
arity()
public

Returns an indication of the number of arguments accepted by a method. Returns a nonnegative integer for methods that take a fixed number of arguments. For Ruby methods that take a variable number of arguments, returns -n-1, where n is the number of required arguments. Keyword arguments will be considered as a single additional argument, that argument being mandatory if any keyword argument is mandatory. For methods written in C, returns -1 if the call takes a variable number of arguments.

class C
 def one; end
 def two(a); end
 def three(*a); end
 def four(a, b); end
 def five(a, b, *c); end
 def six(a, b, *c, &d); end
 def seven(a, b, x:0); end
 def eight(x:, y:); end
 def nine(x:, y:, **z); end
 def ten(*a, x:, y:); end
end
c = C.new
c.method(:one).arity #=> 0
c.method(:two).arity #=> 1
c.method(:three).arity #=> -1
c.method(:four).arity #=> 2
c.method(:five).arity #=> -3
c.method(:six).arity #=> -3
c.method(:seven).arity #=> -3
c.method(:eight).arity #=> 1
c.method(:nine).arity #=> 1
c.method(:ten).arity #=> -2

"cat".method(:size).arity #=> 0
"cat".method(:replace).arity #=> 1
"cat".method(:squeeze).arity #=> -1
"cat".method(:count).arity #=> -1
static VALUE
method_arity_m(VALUE method)
{
 int n = method_arity(method);
 return INT2FIX(n);
}