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)
    • 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()