org.jruby.Ruby.getDefaultMethodMissing()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.9k)|赞(0)|评价(0)|浏览(83)

本文整理了Java中org.jruby.Ruby.getDefaultMethodMissing方法的一些代码示例,展示了Ruby.getDefaultMethodMissing的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ruby.getDefaultMethodMissing方法的具体详情如下:
包路径:org.jruby.Ruby
类名称:Ruby
方法名:getDefaultMethodMissing

Ruby.getDefaultMethodMissing介绍

暂无

代码示例

代码示例来源:origin: org.jruby/jruby-core

public static DynamicMethod selectMethodMissing(ThreadContext context, RubyClass selfClass, Visibility visibility, String name, CallType callType) {
  final Ruby runtime = context.runtime;
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = selfClass.searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, visibility, callType);
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

public static DynamicMethod selectMethodMissing(ThreadContext context, RubyClass selfClass, Visibility visibility, String name, CallType callType) {
  Ruby runtime = context.runtime;
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = selfClass.searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, callType);
}

代码示例来源:origin: org.jruby/jruby-complete

public static DynamicMethod selectMethodMissing(ThreadContext context, RubyClass selfClass, Visibility visibility, String name, CallType callType) {
  final Ruby runtime = context.runtime;
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = selfClass.searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, visibility, callType);
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

public static DynamicMethod selectMethodMissing(ThreadContext context, RubyClass selfClass, Visibility visibility, String name, CallType callType) {
  Ruby runtime = context.runtime;
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = selfClass.searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, callType);
}

代码示例来源:origin: org.jruby/jruby-core

public static DynamicMethod selectMethodMissing(RubyClass selfClass, Visibility visibility, String name, CallType callType) {
  Ruby runtime = selfClass.getClassRuntime();
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = selfClass.searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, visibility, callType);
}

代码示例来源:origin: org.jruby/jruby-complete

public static DynamicMethod selectMethodMissing(ThreadContext context, IRubyObject receiver, Visibility visibility, String name, CallType callType) {
  Ruby runtime = context.runtime;
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = receiver.getMetaClass().searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, visibility, callType);
}

代码示例来源:origin: org.jruby/jruby-complete

public static DynamicMethod selectMethodMissing(RubyClass selfClass, Visibility visibility, String name, CallType callType) {
  Ruby runtime = selfClass.getClassRuntime();
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = selfClass.searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, visibility, callType);
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

public static DynamicMethod selectMethodMissing(ThreadContext context, IRubyObject receiver, Visibility visibility, String name, CallType callType) {
  Ruby runtime = context.runtime;
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = receiver.getMetaClass().searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, callType);
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

public static DynamicMethod selectMethodMissing(RubyClass selfClass, Visibility visibility, String name, CallType callType) {
  Ruby runtime = selfClass.getClassRuntime();
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = selfClass.searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, callType);
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

public static DynamicMethod selectMethodMissing(RubyClass selfClass, Visibility visibility, String name, CallType callType) {
  Ruby runtime = selfClass.getClassRuntime();
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = selfClass.searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, callType);
}

代码示例来源:origin: org.jruby/jruby-core

public static DynamicMethod selectMethodMissing(ThreadContext context, IRubyObject receiver, Visibility visibility, String name, CallType callType) {
  Ruby runtime = context.runtime;
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = receiver.getMetaClass().searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, visibility, callType);
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

public static DynamicMethod selectMethodMissing(ThreadContext context, IRubyObject receiver, Visibility visibility, String name, CallType callType) {
  Ruby runtime = context.runtime;
  if (name.equals("method_missing")) {
    return selectInternalMM(runtime, visibility, callType);
  }
  DynamicMethod methodMissing = receiver.getMetaClass().searchMethod("method_missing");
  if (methodMissing.isUndefined() || methodMissing.equals(runtime.getDefaultMethodMissing())) {
    return selectInternalMM(runtime, visibility, callType);
  }
  return new MethodMissingMethod(methodMissing, callType);
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

public IRubyObject finvokeChecked(ThreadContext context, IRubyObject self, String name) {
  DynamicMethod method = searchMethod(name);
  if(method.isUndefined()) {
    DynamicMethod methodMissing = searchMethod("method_missing");
    if(methodMissing.isUndefined() || methodMissing.equals(context.runtime.getDefaultMethodMissing())) {
      return null;
    }
    try {
      return Helpers.callMethodMissing(context, self, method.getVisibility(), name, CallType.FUNCTIONAL, Block.NULL_BLOCK);
    } catch(RaiseException e) {
      if(context.runtime.getNoMethodError().isInstance(e.getException())) {
        if(self.respondsTo(name)) {
          throw e;
        } else {
          // we swallow, so we also must clear $!
          context.setErrorInfo(context.nil);
          return null;
        }
      } else {
        throw e;
      }
    }
  }
  return method.call(context, self, this, name);
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

public IRubyObject finvokeChecked(ThreadContext context, IRubyObject self, String name) {
  DynamicMethod method = searchMethod(name);
  if(method.isUndefined()) {
    DynamicMethod methodMissing = searchMethod("method_missing");
    if(methodMissing.isUndefined() || methodMissing.equals(context.runtime.getDefaultMethodMissing())) {
      return null;
    }
    try {
      return Helpers.callMethodMissing(context, self, method.getVisibility(), name, CallType.FUNCTIONAL, Block.NULL_BLOCK);
    } catch(RaiseException e) {
      if(context.runtime.getNoMethodError().isInstance(e.getException())) {
        if(self.respondsTo(name)) {
          throw e;
        } else {
          // we swallow, so we also must clear $!
          context.setErrorInfo(context.nil);
          return null;
        }
      } else {
        throw e;
      }
    }
  }
  return method.call(context, self, this, name);
}

相关文章

微信公众号

最新文章

更多

Ruby类方法