public static IRubyObject getInstanceVariableNoWarn(IRubyObject self, ThreadContext context, String internedName) { IRubyObject result = self.getInstanceVariables().getInstanceVariable(internedName); if (result != null) return result; return context.nil; }
private static boolean initInterfaceModules(final IRubyObject self, final IRubyObject module) { if ( ! module.getInstanceVariables().hasInstanceVariable("@java_interface_mods") ) { final RubyArray interfaceMods = RubyArray.newArray(self.getRuntime(), self); module.getInstanceVariables().setInstanceVariable("@java_interface_mods", interfaceMods); return true; } return false; }
public static NodeCache get(IRubyObject rubyObject) { RubyHash cache = (RubyHash) rubyObject.getInstanceVariables().getInstanceVariable(ASCIIDOCTORJ_CACHE); if (cache == null) { cache = RubyHash.newHash(rubyObject.getRuntime()); rubyObject.getInstanceVariables().setInstanceVariable(ASCIIDOCTORJ_CACHE, cache); } return new NodeCache(cache); }
@JIT @Interp public static IRubyObject isDefinedInstanceVar(ThreadContext context, IRubyObject receiver, String name, IRubyObject definedMessage) { return receiver.getInstanceVariables().hasInstanceVariable(name) ? definedMessage : context.nil; }
@JRubyMethod public static IRubyObject initialize(ThreadContext context, IRubyObject self, IRubyObject javaClassName, Block block) { Ruby runtime = context.runtime; self.getInstanceVariables().setInstanceVariable("@java_class", JavaClass.forNameVerbose(runtime, javaClassName.asJavaString())); self.getInstanceVariables().setInstanceVariable("@block", RubyProc.newProc(runtime, block, block.type)); return runtime.getNil(); }
@JRubyMethod public static IRubyObject initialize(ThreadContext context, IRubyObject self, IRubyObject javaClassName, Block block) { Ruby runtime = context.runtime; self.getInstanceVariables().setInstanceVariable("@java_class", JavaClass.forNameVerbose(runtime, javaClassName.asJavaString())); self.getInstanceVariables().setInstanceVariable("@block", RubyProc.newProc(runtime, block, block.type)); return runtime.getNil(); }
@JRubyMethod public static IRubyObject extend_proxy(ThreadContext context, IRubyObject self, IRubyObject proxyClass) { return proxyClass.callMethod(context, "class_eval", IRubyObject.NULL_ARRAY, ((RubyProc)self.getInstanceVariables().getInstanceVariable("@block")).getBlock()); } }
@JRubyMethod(visibility = Visibility.PRIVATE) public static IRubyObject initialize(ThreadContext context, IRubyObject self, IRubyObject javaClassName, Block block) { Ruby runtime = context.runtime; self.getInstanceVariables().setInstanceVariable("@java_class", JavaClass.forNameVerbose(runtime, javaClassName.asJavaString())); self.getInstanceVariables().setInstanceVariable("@block", RubyProc.newProc(runtime, block, block.type)); self.getInternalVariables().getInternalVariable("@block"); return context.nil; }
public static IRubyObject getInstanceVariable(IRubyObject self, Ruby runtime, String internedName) { IRubyObject result = self.getInstanceVariables().getInstanceVariable(internedName); if (result != null) return result; if (runtime.isVerbose()) warnAboutUninitializedIvar(runtime, internedName); return runtime.getNil(); }
@JRubyMethod(visibility = Visibility.PRIVATE) public static IRubyObject initialize(ThreadContext context, IRubyObject self, IRubyObject javaClassName, Block block) { Ruby runtime = context.runtime; self.getInstanceVariables().setInstanceVariable("@java_class", JavaClass.forNameVerbose(runtime, javaClassName.asJavaString())); self.getInstanceVariables().setInstanceVariable("@block", RubyProc.newProc(runtime, block, block.type)); self.getInternalVariables().getInternalVariable("@block"); return context.nil; }
public static IRubyObject getInstanceVariable(IRubyObject self, Ruby runtime, String internedName) { IRubyObject result = self.getInstanceVariables().getInstanceVariable(internedName); if (result != null) return result; if (runtime.isVerbose()) warnAboutUninitializedIvar(runtime, internedName); return runtime.getNil(); }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg) { IRubyObject javaInterfaces = self.getInstanceVariables().getInstanceVariable("@java_interfaces"); if (javaInterfaces != null && ((RubyArray) javaInterfaces).includes(context, arg)) { return Helpers.invoke(context, arg, "implement", self); } return context.runtime.getNil(); } });
@JRubyMethod public static IRubyObject extend_proxy(ThreadContext context, IRubyObject self, IRubyObject proxyClass) { return proxyClass.callMethod(context, "class_eval", IRubyObject.NULL_ARRAY, ((RubyProc)self.getInstanceVariables().getInstanceVariable("@block")).getBlock()); } }
public void setRubyProperty(String propertyName, IRubyObject arg) { ThreadContext threadContext = runtime.getThreadService().getCurrentContext(); if (propertyName.startsWith("@")) { rubyNode.getInstanceVariables().setInstanceVariable(propertyName, arg); } else { if (arg == null) { rubyNode.callMethod(threadContext, propertyName + "=", runtime.getNil()); } else { rubyNode.callMethod(threadContext, propertyName + "=", arg); } } }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg) { RubyArray javaInterfaces = (RubyArray) self.getInstanceVariables().getInstanceVariable("@java_interfaces"); for (int i = 0; i < javaInterfaces.size(); i++) { Helpers.invoke(context, JavaUtilities.get_interface_module(self, javaInterfaces.eltInternal(i)), "implement", self); } return javaInterfaces; } });
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg) { RubyArray javaInterfaces = (RubyArray) self.getInstanceVariables().getInstanceVariable("@java_interfaces"); for (int i = 0; i < javaInterfaces.size(); i++) { Helpers.invoke(context, JavaUtilities.get_interface_module(self, javaInterfaces.eltInternal(i)), "implement", self); } return javaInterfaces; } });
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { IRubyObject receiver = (IRubyObject) getObject().retrieve(context, self, currDynScope, temp); return context.runtime.newBoolean(receiver.getInstanceVariables().hasInstanceVariable(getName().string)); }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg, Block block) { if (!(arg instanceof RubyClass)) { throw context.runtime.newTypeError("append_features called with non-class"); } RubyClass target = (RubyClass)arg; RubyArray javaInterfaceMods = (RubyArray)self.getInstanceVariables().getInstanceVariable("@java_interface_mods"); target.include(javaInterfaceMods.toJavaArray()); return Helpers.invokeAs(context, clazz.getSuperClass(), self, name, arg, block); } });
@JRubyMethod(name = "new", rest = true) public static IRubyObject rbNew(ThreadContext context, IRubyObject self, IRubyObject[] args, Block block) { Ruby runtime = context.runtime; RubyClass implClass = (RubyClass)self.getInstanceVariables().getInstanceVariable("@__implementation"); if (implClass == null) { implClass = RubyClass.newClass(runtime, (RubyClass)runtime.getClass("InterfaceJavaProxy")); implClass.include(new IRubyObject[] {self}); Helpers.setInstanceVariable(implClass, self, "@__implementation"); } return Helpers.invoke(context, implClass, "new", args, block); } }
public IRubyObject setInstanceVariable(IRubyObject obj, String variableName, IRubyObject value) { BiVariableMap map = container.getVarMap(); synchronized (map) { if (map.containsKey(variableName)) { BiVariable bv = map.getVariable((RubyObject)container.getProvider().getRuntime().getTopSelf(), variableName); bv.setRubyObject(value); } else { InstanceVariable iv = new InstanceVariable(obj, variableName, value); map.update(variableName, iv); } } return obj.getInstanceVariables().setInstanceVariable(variableName, value); }