Methods
Public Instance methods
arguments()

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
# 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
arguments()

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
# 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
name()

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
# File lib/core/facets/unboundmethod/name.rb, line 18
    def name
      i = to_s.rindex('#')
      to_s.slice(i+1...-1)
    end
name()

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
# File lib/core/facets/unboundmethod/name.rb, line 18
    def name
      i = to_s.rindex('#')
      to_s.slice(i+1...-1)
    end