@JRubyMethod(name = "inject", frame = true)
public static IRubyObject inject(ThreadContext context, IRubyObject self, IRubyObject init, final Block block) {
final Ruby runtime = context.getRuntime();
final IRubyObject result[] = new IRubyObject[] { init };
final ThreadContext localContext = context;
callEach(runtime, context, self, new BlockCallback() {
public IRubyObject call(ThreadContext ctx, IRubyObject[] largs, Block blk) {
checkContext(localContext, ctx, "inject");
result[0] = result[0] == null ?