Methods
Public Instance methods
Resolves the arguments of the method to have an identical signiture —useful for preserving arity.
class X def foo(a, b); end def bar(a, b=1); end end foo_method = X.instance_method(:foo) foo_method.arguments #=> "a0, a1" bar_method = X.instance_method(:bar) bar_method.arguments #=> "a0, *args"
When defaults are used the arguments must end in "*args".
CREDIT: Trans
[ show source ]
# File lib/core/facets/unboundmethod/arguments.rb, line 21 def arguments ar = arity case ar <=> 0 when 1 args = [] ar.times do |i| args << "a#{i}" end args = args.join(", ") when 0 args = "" else ar = -ar - 1 args = [] ar.times do |i| args << "a#{i}" end args << "*args" args = args.join(", ") end return args end
Resolves the arguments of the method to have an identical signiture —useful for preserving arity.
class X def foo(a, b); end def bar(a, b=1); end end foo_method = X.instance_method(:foo) foo_method.arguments #=> "a0, a1" bar_method = X.instance_method(:bar) bar_method.arguments #=> "a0, *args"
When defaults are used the arguments must end in "*args".
CREDIT: Trans
[ show source ]
# File lib/core/facets/unboundmethod/arguments.rb, line 21 def arguments ar = arity case ar <=> 0 when 1 args = [] ar.times do |i| args << "a#{i}" end args = args.join(", ") when 0 args = "" else ar = -ar - 1 args = [] ar.times do |i| args << "a#{i}" end args << "*args" args = args.join(", ") end return args end
Return the name of the method. Is this already in 1.9+ ?
class X def foo; end end meth = X.instance_method(:foo) meth.name #=> "foo" CREDIT: Trans
[ show source ]
# File lib/core/facets/unboundmethod/name.rb, line 18 def name i = to_s.rindex('#') to_s.slice(i+1...-1) end
Return the name of the method. Is this already in 1.9+ ?
class X def foo; end end meth = X.instance_method(:foo) meth.name #=> "foo" CREDIT: Trans
[ show source ]
# File lib/core/facets/unboundmethod/name.rb, line 18 def name i = to_s.rindex('#') to_s.slice(i+1...-1) end