Sha256: d11a1eeadae82b229699eff3d165fe3cfdc4d14d9fc17b5ad19ca4ac624e97b5

Contents?: true

Size: 1.19 KB

Versions: 254

Compression:

Stored size: 1.19 KB

Contents

/**
 * Copyright 2007 Ye Zheng
 * Distributed under the BSD License
 */

package com.xruby.runtime.lang;

import com.xruby.runtime.builtin.RubyArray;

public abstract class RubyOneArgBlock extends RubyBlock {
    public RubyOneArgBlock(RubyValue self, RubyValue arg, RubyArray args, RubyBlock block, RubyModule scope, RubyMethod owner, boolean definedInAnotherBlock) {
        super(1, false, 0, self, arg, args, block, scope, owner, definedInAnotherBlock);
    }

    protected RubyValue run(RubyValue receiver, RubyArray args) {
        RubyValue arg;
        if (args != null && args.size() == 1) {
            arg = args.get(0);
        } else if (args == null || args.size() == 0) {
            arg = RubyConstant.QNIL;
        } else {
            // TO DO: rethinking
            // For code: yield 1, 2; f {|x|}
            arg = args;
        }

        return this.run(receiver, arg);
    }

    protected RubyValue run(RubyValue receiver) {
        return this.run(receiver, RubyConstant.QNIL);
    }

    protected RubyValue run(RubyValue receiver, RubyValue arg0, RubyValue arg1) {
        return this.run(receiver, arg0);
    }

    protected abstract RubyValue run(RubyValue receiver, RubyValue arg);
}

Version data entries

254 entries across 136 versions & 2 rubygems

Version Path
rhodes-7.6.0 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-7.5.1 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-7.4.1 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-7.1.17 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-6.2.0 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-6.0.11 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-5.5.18 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-5.5.17 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-5.5.15 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-5.5.0.22 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-5.5.2 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-5.5.0.7 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-5.5.0.3 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-5.5.0 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
tauplatform-1.0.3 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
tauplatform-1.0.2 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
tauplatform-1.0.1 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-3.5.1.12 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-3.5.1.12 platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyOneArgBlock.java
rhodes-3.3.5 platform/shared/xruby/src/com/xruby/runtime/lang/RubyOneArgBlock.java