org.jruby.RubyModule.usingRefinement()方法的使用及代码示例

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

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

RubyModule.usingRefinement介绍

暂无

代码示例

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

private static void usingModuleRecursive(RubyModule cref, RubyModule refinedModule) {
  Ruby runtime = cref.getRuntime();
  RubyClass superClass = refinedModule.getSuperClass();
  // For each superClass of the refined module also use their refinements for the given cref
  if (superClass != null) usingModuleRecursive(cref, superClass);
  RubyModule realRefinedModule;
  if (refinedModule instanceof IncludedModule) {
    realRefinedModule = ((IncludedModule) refinedModule).getDelegate();
  } else if (refinedModule.isModule()) {
    realRefinedModule = refinedModule;
  } else {
    throw runtime.newTypeError("wrong argument type " + refinedModule.getName() + " (expected Module)");
  }
  Map<RubyModule, RubyModule> refinements = realRefinedModule.refinements;
  if (refinements == null) return; // No refinements registered for this module
  for (Map.Entry<RubyModule, RubyModule> entry: refinements.entrySet()) {
    usingRefinement(runtime, cref, entry.getKey(), entry.getValue());
  }
}

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

private static void usingModuleRecursive(RubyModule cref, RubyModule refinedModule) {
  Ruby runtime = cref.getRuntime();
  RubyClass superClass = refinedModule.getSuperClass();
  // For each superClass of the refined module also use their refinements for the given cref
  if (superClass != null) usingModuleRecursive(cref, superClass);
  RubyModule realRefinedModule;
  if (refinedModule instanceof IncludedModule) {
    realRefinedModule = ((IncludedModule) refinedModule).getDelegate();
  } else if (refinedModule.isModule()) {
    realRefinedModule = refinedModule;
  } else {
    throw runtime.newTypeError("wrong argument type " + refinedModule.getName() + " (expected Module)");
  }
  Map<RubyModule, RubyModule> refinements = realRefinedModule.refinements;
  if (refinements == null) return; // No refinements registered for this module
  for (Map.Entry<RubyModule, RubyModule> entry: refinements.entrySet()) {
    usingRefinement(runtime, cref, entry.getKey(), entry.getValue());
  }
}

相关文章

微信公众号

最新文章

更多

RubyModule类方法