Exemplo n.º 1
0
  // @RubyLevelMethod(name="*")
  public RubyValue run(RubyValue arg, RubyBlock block) {
    if (arg instanceof RubyFixnum) {
      RubyFixnum times = (RubyFixnum) arg;
      return times(times.toInt());
    } else if (arg instanceof RubyString) {
      return RubyAPI.callOneArgMethod(this, arg, block, RubyID.joinID);
    }

    throw new RubyException(
        RubyRuntime.TypeErrorClass, "no implicit conversion from " + arg + " to integer");
  }
Exemplo n.º 2
0
  @RubyLevelMethod(name = "==")
  public RubyValue opEqual(RubyValue arg) {
    if (arg == this) {
      return RubyConstant.QTRUE;
    }

    if (arg instanceof RubyFixnum) {
      return ObjectFactory.createBoolean(this.value_ == ((RubyFixnum) arg).value_);
    }

    return RubyAPI.callOneArgMethod(arg, this, null, RubyID.equalID);
  }
 @RubyLevelMethod(name = "send", alias = "__send__")
 public static RubyValue send(
     RubyValue receiver, RubyValue arg0, RubyValue arg1, RubyBlock block) {
   RubyID mid = RubyID.intern(arg0.toStr());
   return RubyAPI.callOneArgMethod(receiver, arg1, block, mid);
 }