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

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

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

Ruby.pushExitBlock介绍

[英]Push block onto exit stack. When runtime environment exits these blocks will be evaluated.
[中]将挡块推到出口堆栈上。当运行时环境退出时,将对这些块进行评估。

代码示例

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

@Deprecated // not-used
public static void registerEndBlock(Block block, Ruby runtime) {
  runtime.pushExitBlock(runtime.newProc(Block.Type.LAMBDA, block));
}

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

/**
 * It is possible for looping or repeated execution to encounter the same END
 * block multiple times.  Rather than store extra runtime state we will just
 * make sure it is not already registered.  at_exit by contrast can push the
 * same block many times (and should use pushExistBlock).
 */
public void pushEndBlock(RubyProc proc) {
  if (alreadyRegisteredEndBlock(proc) != null) return;
  pushExitBlock(proc);
}

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

/**
 * It is possible for looping or repeated execution to encounter the same END
 * block multiple times.  Rather than store extra runtime state we will just
 * make sure it is not already registered.  at_exit by contrast can push the
 * same block many times (and should use pushExistBlock).
 */
public void pushEndBlock(RubyProc proc) {
  if (alreadyRegisteredEndBlock(proc) != null) return;
  pushExitBlock(proc);
}

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

@Deprecated // not-used
public static void registerEndBlock(Block block, Ruby runtime) {
  runtime.pushExitBlock(runtime.newProc(Block.Type.LAMBDA, block));
}

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

public static void registerEndBlock(Block block, Ruby runtime) {
  runtime.pushExitBlock(runtime.newProc(Block.Type.LAMBDA, block));
}

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

public static void registerEndBlock(Block block, Ruby runtime) {
  runtime.pushExitBlock(runtime.newProc(Block.Type.LAMBDA, block));
}

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

@JRubyMethod(module = true, visibility = PRIVATE)
public static IRubyObject at_exit(ThreadContext context, IRubyObject recv, Block block) {
  return context.runtime.pushExitBlock(context.runtime.newProc(Block.Type.PROC, block));
}

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

@JRubyMethod(module = true, visibility = PRIVATE)
public static IRubyObject at_exit(ThreadContext context, IRubyObject recv, Block block) {
  return context.runtime.pushExitBlock(context.runtime.newProc(Block.Type.PROC, block));
}

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

@JRubyMethod(module = true, visibility = PRIVATE)
public static IRubyObject at_exit(ThreadContext context, IRubyObject recv, Block block) {
  return context.runtime.pushExitBlock(context.runtime.newProc(Block.Type.PROC, block));
}

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

@JRubyMethod(module = true, visibility = PRIVATE)
public static IRubyObject at_exit(ThreadContext context, IRubyObject recv, Block block) {
  return context.runtime.pushExitBlock(context.runtime.newProc(Block.Type.PROC, block));
}

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

@Override
  public IRubyObject interpret(Ruby runtime, ThreadContext context, IRubyObject self, Block aBlock) {
    Block block = SharedScopeBlock.newInterpretedSharedScopeClosure(context, this, context.getCurrentScope(), self);
    
    runtime.pushExitBlock(runtime.newProc(Block.Type.LAMBDA, block));
    
    return runtime.getNil();
  }
}

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

@Override
  public IRubyObject interpret(Ruby runtime, ThreadContext context, IRubyObject self, Block aBlock) {
    Block block = SharedScopeBlock.newInterpretedSharedScopeClosure(context, this, context.getCurrentScope(), self);
    
    runtime.pushExitBlock(runtime.newProc(Block.Type.LAMBDA, block));
    
    return runtime.getNil();
  }
}

相关文章

Ruby类方法