public static ToLambdaMethodInfo ( |
||
block | ||
definitionName | string | |
visibility | RubyMethodVisibility | |
owner | ||
return |
public static Proc /*!*/ DefineMethod(RubyScope /*!*/ scope, RubyModule /*!*/ self, [DefaultProtocol, NotNull] string /*!*/ methodName, [NotNull] Proc /*!*/ block) { var visibility = GetDefinedMethodVisibility(scope, self, methodName); var info = Proc.ToLambdaMethodInfo(block, methodName, visibility, self); self.AddMethod(scope.RubyContext, methodName, info); return(info.Lambda); }
public static Proc /*!*/ DefineMethod(RubyScope /*!*/ scope, RubyModule /*!*/ self, [DefaultProtocol] string /*!*/ methodName, [NotNull] Proc /*!*/ method) { // MRI: ignores ModuleFunction scope flag (doesn't create singleton method). // MRI 1.8: uses private visibility if module_function is applied (bug). // MFI 1.9: uses public visibility as we do, unless the name is special. var visibility = RubyUtils.GetSpecialMethodVisibility(scope.Visibility, methodName); self.AddMethod(methodName, Proc.ToLambdaMethodInfo(method.ToLambda(), methodName, visibility, self)); return(method); }