/** * Determine if a new child of the given class can have its variables reified. */ private boolean isReifiable(Ruby runtime, RubyClass superClass) { if (superClass == runtime.getObject()) return true; if (superClass.getAllocator() == IVAR_INSPECTING_OBJECT_ALLOCATOR) return true; return false; }
private RubyClass defineClassIfAllowed(String name, RubyClass superClass) { // TODO: should probably apply the null object pattern for a // non-allowed class, rather than null if (superClass != null && profile.allowClass(name)) { return defineClass(name, superClass, superClass.getAllocator()); } return null; }
public void load(Ruby runtime, boolean wrap) { RubyClass rb_cCGI = runtime.defineClass("CGI", runtime.getObject(), runtime.getObject().getAllocator()); RubyModule rb_mEscape = rb_cCGI.defineModuleUnder("Escape"); rb_mEscape.defineAnnotatedMethods(CGIEscape.class); // We do this in cgi/util.rb to work around jruby/jruby#4531. // rb_mUtil.prependModule(rb_mEscape); // rb_mEscape.extend_object(rb_cCGI); }
public void load(Ruby runtime, boolean wrap) { RubyClass rb_cCGI = runtime.defineClass("CGI", runtime.getObject(), runtime.getObject().getAllocator()); RubyModule rb_mEscape = rb_cCGI.defineModuleUnder("Escape"); rb_mEscape.defineAnnotatedMethods(CGIEscape.class); // We do this in cgi/util.rb to work around jruby/jruby#4531. // rb_mUtil.prependModule(rb_mEscape); // rb_mEscape.extend_object(rb_cCGI); }
public static void initPsychToRuby(Ruby runtime, RubyModule psych) { RubyModule visitors = runtime.defineModuleUnder("Visitors", psych); RubyClass visitor = runtime.defineClassUnder("Visitor", runtime.getObject(), runtime.getObject().getAllocator(), visitors); RubyClass psychToRuby = runtime.defineClassUnder("ToRuby", visitor, RubyObject.OBJECT_ALLOCATOR, visitors); psychToRuby.defineAnnotatedMethods(PsychToRuby.class); }
public static RubyClass createInterfaceJavaProxy(ThreadContext context) { final Ruby runtime = context.runtime; RubyClass InterfaceJavaProxy = runtime.defineClass( "InterfaceJavaProxy", runtime.getJavaSupport().getJavaProxyClass(), ALLOCATOR ); RubyClass JavaInterfaceExtended = runtime.defineClass( "JavaInterfaceExtender", runtime.getObject(), runtime.getObject().getAllocator() ); JavaInterfaceExtended.defineAnnotatedMethods(JavaInterfaceExtender.class); return InterfaceJavaProxy; }
public static void createDigestBubbleBabble(Ruby runtime) { runtime.getLoadService().require("digest"); RubyModule Digest = runtime.getModule("Digest"); RubyClass Base = Digest.getClass("Base"); RubyClass MD5 = Digest.defineClassUnder("BubbleBabble", Base, Base.getAllocator()); MD5.setInternalVariable("metadata", new Metadata("BubbleBabble", 64)); }
@JRubyMethod(meta = true) public static IRubyObject for_fd(ThreadContext context, IRubyObject _klass, IRubyObject _fileno) { Ruby runtime = context.runtime; int fileno = (int)_fileno.convertToInteger().getLongValue(); RubyClass klass = (RubyClass)_klass; ChannelFD fd = runtime.getFilenoUtil().getWrapperFromFileno(fileno); RubyBasicSocket basicSocket = (RubyBasicSocket)klass.getAllocator().allocate(runtime, klass); basicSocket.initSocket(fd); return basicSocket; }
public static void createDigestMD5(Ruby runtime) { runtime.getLoadService().require("digest"); RubyModule Digest = runtime.getModule("Digest"); RubyClass Base = Digest.getClass("Base"); RubyClass MD5 = Digest.defineClassUnder("MD5", Base, Base.getAllocator()); MD5.setInternalVariable("metadata", new Metadata("MD5", 64)); }
public static void createDigestSHA1(Ruby runtime) { runtime.getLoadService().require("digest"); RubyModule Digest = runtime.getModule("Digest"); RubyClass Base = Digest.getClass("Base"); RubyClass SHA1 = Digest.defineClassUnder("SHA1", Base, Base.getAllocator()); SHA1.setInternalVariable("metadata", new Metadata("SHA1", 64)); }
public static void createDigestMD5(Ruby runtime) { runtime.getLoadService().require("digest"); RubyModule Digest = runtime.getModule("Digest"); RubyClass Base = Digest.getClass("Base"); RubyClass MD5 = Digest.defineClassUnder("MD5", Base, Base.getAllocator()); MD5.setInternalVariable("metadata", new Metadata("MD5", 64)); }
public static void createDigestSHA1(Ruby runtime) { runtime.getLoadService().require("digest"); RubyModule Digest = runtime.getModule("Digest"); RubyClass Base = Digest.getClass("Base"); RubyClass SHA1 = Digest.defineClassUnder("SHA1", Base, Base.getAllocator()); SHA1.setInternalVariable("metadata", new Metadata("SHA1", 64)); }
public static void createDigestMD5(Ruby runtime) { runtime.getLoadService().require("digest"); RubyModule mDigest = runtime.getModule("Digest"); RubyClass cDigestBase = mDigest.getClass("Base"); RubyClass cDigest_MD5 = mDigest.defineClassUnder("MD5",cDigestBase,cDigestBase.getAllocator()); cDigest_MD5.setInternalVariable("metadata", new Metadata("MD5", 64)); }
public static void createDigestSHA1(Ruby runtime) { runtime.getLoadService().require("digest"); RubyModule mDigest = runtime.getModule("Digest"); RubyClass cDigestBase = mDigest.getClass("Base"); RubyClass cDigest_SHA1 = mDigest.defineClassUnder("SHA1",cDigestBase,cDigestBase.getAllocator()); cDigest_SHA1.setInternalVariable("metadata", new Metadata("SHA1", 64)); }
public static void createDigestSHA1(Ruby runtime) { runtime.getLoadService().require("digest"); RubyModule mDigest = runtime.getModule("Digest"); RubyClass cDigestBase = mDigest.getClass("Base"); RubyClass cDigest_SHA1 = mDigest.defineClassUnder("SHA1",cDigestBase,cDigestBase.getAllocator()); cDigest_SHA1.setInternalVariable("metadata", new Metadata("SHA1", 64)); }
@JRubyMethod(meta = true) public static IRubyObject for_fd(ThreadContext context, IRubyObject _klass, IRubyObject _fileno) { Ruby runtime = context.runtime; int fileno = (int)_fileno.convertToInteger().getLongValue(); RubyClass klass = (RubyClass)_klass; ChannelFD fd = runtime.getFilenoUtil().getWrapperFromFileno(fileno); RubyBasicSocket basicSocket = (RubyBasicSocket)klass.getAllocator().allocate(runtime, klass); basicSocket.initSocket(fd); return basicSocket; }
public static void createDigestRMD160(Ruby runtime) { runtime.getLoadService().require("digest"); if(provider == null) { throw runtime.newLoadError("RMD160 not supported without BouncyCastle"); } RubyModule Digest = runtime.getModule("Digest"); RubyClass Base = Digest.getClass("Base"); RubyClass RMD160 = Digest.defineClassUnder("RMD160", Base, Base.getAllocator()); RMD160.setInternalVariable("metadata", new Metadata("RIPEMD160", 64)); }
public static void createDigestRMD160(Ruby runtime) { runtime.getLoadService().require("digest"); if(provider == null) { throw runtime.newLoadError("RMD160 not supported without BouncyCastle"); } RubyModule mDigest = runtime.getModule("Digest"); RubyClass cDigestBase = mDigest.getClass("Base"); RubyClass cDigest_RMD160 = mDigest.defineClassUnder("RMD160",cDigestBase,cDigestBase.getAllocator()); cDigest_RMD160.setInternalVariable("metadata", new Metadata("RIPEMD160", 64)); }
public static void createContinuation(Ruby runtime) { RubyClass cContinuation = runtime.defineClass("Continuation",runtime.getObject(),runtime.getObject().getAllocator()); cContinuation.index = ClassIndex.CONTINUATION; cContinuation.setReifiedClass(RubyContinuation.class); cContinuation.defineAnnotatedMethods(RubyContinuation.class); cContinuation.getSingletonClass().undefineMethod("new"); runtime.setContinuation(cContinuation); }
public static void createContinuation(Ruby runtime) { RubyClass cContinuation = runtime.defineClass("Continuation",runtime.getObject(),runtime.getObject().getAllocator()); cContinuation.setClassIndex(ClassIndex.CONTINUATION); cContinuation.setReifiedClass(RubyContinuation.class); cContinuation.defineAnnotatedMethods(RubyContinuation.class); cContinuation.getSingletonClass().undefineMethod("new"); runtime.setContinuation(cContinuation); }