Class ProcMethod

java.lang.Object
org.jruby.internal.runtime.methods.DynamicMethod
org.jruby.internal.runtime.methods.ProcMethod
All Implemented Interfaces:
IRMethodArgs, PositionAware

public class ProcMethod extends DynamicMethod implements PositionAware, IRMethodArgs
  • Constructor Details

    • ProcMethod

      public ProcMethod(RubyModule implementationClass, RubyProc proc, Visibility visibility, String name)
      Constructor for ProcMethod.
      Parameters:
      visibility -
  • Method Details

    • call

      public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject[] args, Block block)
      Description copied from class: DynamicMethod
      The minimum 'call' method required for a dynamic method handle. Subclasses must implement this method, but may implement the other signatures to provide faster, non-boxing call paths. Typically subclasses will implement this method to check variable arity calls, then performing a specific-arity invocation to the appropriate method or performing variable-arity logic in-line.
      Specified by:
      call in class DynamicMethod
      Parameters:
      context - The thread context for the currently executing thread
      self - The 'self' or 'receiver' object to use for this call
      klazz - The Ruby class against which this method is binding
      name - The incoming name used to invoke this method
      args - The argument list to this invocation
      block - The block passed to this invocation
      Returns:
      The result of the call
    • dup

      public DynamicMethod dup()
      Description copied from class: DynamicMethod
      Duplicate this method, returning DynamicMethod referencing the same code and with the same attributes. It is not required that this method produce a new object if the semantics of the DynamicMethod subtype do not require such.
      Specified by:
      dup in class DynamicMethod
      Returns:
      An identical DynamicMethod object to the target.
    • isSame

      public boolean isSame(DynamicMethod method)
    • getArity

      @Deprecated public Arity getArity()
      Deprecated.
      Description copied from class: DynamicMethod
      Retrieve the arity of this method, used for reporting arity to Ruby code. This arity may or may not reflect the actual specific or variable arities of the referenced method.
      Overrides:
      getArity in class DynamicMethod
      Returns:
      The arity of the method, as reported to Ruby consumers.
    • getFile

      public String getFile()
      Description copied from interface: PositionAware
      Get the filename for the method.
      Specified by:
      getFile in interface PositionAware
      Returns:
      the filename for the method
    • getLine

      public int getLine()
      Description copied from interface: PositionAware
      Get the line number for the method. 0-based (ie. line 1 returns a 0)
      Specified by:
      getLine in interface PositionAware
      Returns:
      the line number for the method
    • getSignature

      public Signature getSignature()
      Description copied from class: DynamicMethod
      Retrieve the signature of this method.
      Specified by:
      getSignature in interface IRMethodArgs
      Overrides:
      getSignature in class DynamicMethod
      Returns:
      the signature
    • getArgumentDescriptors

      public ArgumentDescriptor[] getArgumentDescriptors()
      Description copied from interface: IRMethodArgs
      Get the array of ArgumentDescriptors that represent the arguments to this method.
      Specified by:
      getArgumentDescriptors in interface IRMethodArgs
      Returns:
      this methods argument descriptors
    • setRuby2Keywords

      public void setRuby2Keywords()
      Description copied from class: DynamicMethod
      Indicates the method will behave like a ruby2 keywords accepting method. This must be a Ruby implementation to work. See Module#ruby2_keywords for information on the semantics of a method which is marked this way.
      Specified by:
      setRuby2Keywords in interface IRMethodArgs
      Overrides:
      setRuby2Keywords in class DynamicMethod
    • getProc

      public RubyProc getProc()