クラスのインスタンスのメソッドを以下のように委譲するA
と$delegation_target
:
$delegation_target = ""
class A
def method_missing *args, ≺ $delegation_target.send(*args, &pr) end
def respond_to_missing? *args; $delegation_target.respond_to?(*args) end
end
のメソッドの に関係なく、 return のarity
インスタンスのメソッドA
の:-1
arity
$delegation_target
def $delegation_target.foo; end
A.new.method(:foo).arity # => -1
def $delegation_target.foo arg1; end
A.new.method(:foo).arity # => -1
def $delegation_target.foo arg1, arg2; end
A.new.method(:foo).arity # => -1
def $delegation_target.foo arg1, arg2, arg3; end
A.new.method(:foo).arity # => -1
これはどこ-1
から来たのですか?そして、可能なメソッド namem
に対して、(定義されている場合)A.new.method(m).arity
のアリティを返すようにする方法はありますか?$delegation_target.method(m)