// @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"); }
@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); }