public static void createRubyFileDescriptor(Ruby runtime) { RubyModule mProtobuf = runtime.getClassFromPath("Google::Protobuf"); RubyClass cFieldDescriptor = mProtobuf.defineClassUnder("FieldDescriptor", runtime.getObject(), new ObjectAllocator() { @Override public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new RubyFieldDescriptor(runtime, klazz); } }); cFieldDescriptor.defineAnnotatedMethods(RubyFieldDescriptor.class); }
public static RubyClass createModuleClass(Ruby runtime, RubyClass moduleClass) { moduleClass.setClassIndex(ClassIndex.MODULE); moduleClass.setReifiedClass(RubyModule.class); moduleClass.kindOf = new RubyModule.JavaClassKindOf(RubyModule.class); moduleClass.defineAnnotatedMethods(RubyModule.class); moduleClass.defineAnnotatedMethods(ModuleKernelMethods.class); return moduleClass; }
/** Create the RubyMethod class and add it to the Ruby runtime. * */ public static RubyClass createMethodClass(Ruby runtime) { // TODO: NOT_ALLOCATABLE_ALLOCATOR is probably ok here. Confirm. JRUBY-415 RubyClass methodClass = runtime.defineClass("Method", runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR); runtime.setMethod(methodClass); methodClass.setClassIndex(ClassIndex.METHOD); methodClass.setReifiedClass(RubyMethod.class); methodClass.defineAnnotatedMethods(AbstractRubyMethod.class); methodClass.defineAnnotatedMethods(RubyMethod.class); return methodClass; }
public static RubyClass createYielderClass(Ruby runtime) { RubyClass yielderc = runtime.defineClassUnder("Yielder", runtime.getObject(), YIELDER_ALLOCATOR, runtime.getEnumerator()); runtime.setYielder(yielderc); yielderc.setClassIndex(ClassIndex.YIELDER); yielderc.kindOf = new RubyModule.JavaClassKindOf(RubyYielder.class); yielderc.defineAnnotatedMethods(RubyYielder.class); return yielderc; }
public static RubyClass createConverterClass(Ruby runtime) { RubyClass converterc = runtime.defineClassUnder("Converter", runtime.getData(), CONVERTER_ALLOCATOR, runtime.getEncoding()); runtime.setConverter(converterc); converterc.setClassIndex(ClassIndex.CONVERTER); converterc.setReifiedClass(RubyConverter.class); converterc.kindOf = new RubyModule.JavaClassKindOf(RubyConverter.class); converterc.defineAnnotatedMethods(RubyConverter.class); converterc.defineAnnotatedConstants(RubyConverter.class); return converterc; }
/** * Will create the Ruby class Object in the runtime * specified. This method needs to take the actual class as an * argument because of the Object class' central part in runtime * initialization. */ public static RubyClass createBasicObjectClass(Ruby runtime, RubyClass objectClass) { objectClass.setClassIndex(ClassIndex.OBJECT); objectClass.defineAnnotatedMethods(RubyBasicObject.class); recacheBuiltinMethods(runtime); return objectClass; }
/** Create the RubyMethod class and add it to the Ruby runtime. * */ public static RubyClass createMethodClass(Ruby runtime) { // TODO: NOT_ALLOCATABLE_ALLOCATOR is probably ok here. Confirm. JRUBY-415 RubyClass methodClass = runtime.defineClass("Method", runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR); runtime.setMethod(methodClass); methodClass.setClassIndex(ClassIndex.METHOD); methodClass.setReifiedClass(RubyMethod.class); methodClass.defineAnnotatedMethods(AbstractRubyMethod.class); methodClass.defineAnnotatedMethods(RubyMethod.class); return methodClass; }
public static void createRubyEnumBuilderContext(Ruby runtime) { RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf"); RubyClass cMessageBuilderContext = protobuf.defineClassUnder("EnumBuilderContext", runtime.getObject(), new ObjectAllocator() { @Override public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new RubyEnumBuilderContext(runtime, klazz); } }); cMessageBuilderContext.defineAnnotatedMethods(RubyEnumBuilderContext.class); }
public static RubyClass createYielderClass(Ruby runtime) { RubyClass yielderc = runtime.defineClassUnder("Yielder", runtime.getObject(), YIELDER_ALLOCATOR, runtime.getEnumerator()); runtime.setYielder(yielderc); yielderc.setClassIndex(ClassIndex.YIELDER); yielderc.kindOf = new RubyModule.JavaClassKindOf(RubyYielder.class); yielderc.defineAnnotatedMethods(RubyYielder.class); return yielderc; }
public static RubyClass createModuleClass(Ruby runtime, RubyClass moduleClass) { moduleClass.setClassIndex(ClassIndex.MODULE); moduleClass.setReifiedClass(RubyModule.class); moduleClass.kindOf = new RubyModule.JavaClassKindOf(RubyModule.class); moduleClass.defineAnnotatedMethods(RubyModule.class); moduleClass.defineAnnotatedMethods(ModuleKernelMethods.class); return moduleClass; }
public static RubyClass createConverterClass(Ruby runtime) { RubyClass converterc = runtime.defineClassUnder("Converter", runtime.getData(), CONVERTER_ALLOCATOR, runtime.getEncoding()); runtime.setConverter(converterc); converterc.setClassIndex(ClassIndex.CONVERTER); converterc.setReifiedClass(RubyConverter.class); converterc.kindOf = new RubyModule.JavaClassKindOf(RubyConverter.class); converterc.defineAnnotatedMethods(RubyConverter.class); converterc.defineAnnotatedConstants(RubyConverter.class); return converterc; }
/** * Will create the Ruby class Object in the runtime * specified. This method needs to take the actual class as an * argument because of the Object class' central part in runtime * initialization. */ public static RubyClass createBasicObjectClass(Ruby runtime, RubyClass objectClass) { objectClass.setClassIndex(ClassIndex.OBJECT); objectClass.defineAnnotatedMethods(RubyBasicObject.class); recacheBuiltinMethods(runtime); return objectClass; }
public static RubyClass createProcClass(Ruby runtime) { RubyClass procClass = runtime.defineClass("Proc", runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR); runtime.setProc(procClass); procClass.setClassIndex(ClassIndex.PROC); procClass.setReifiedClass(RubyProc.class); procClass.defineAnnotatedMethods(RubyProc.class); return procClass; }
public static void createRubyMessageBuilderContext(Ruby runtime) { RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf"); RubyClass cMessageBuilderContext = protobuf.defineClassUnder("MessageBuilderContext", runtime.getObject(), new ObjectAllocator() { @Override public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new RubyMessageBuilderContext(runtime, klazz); } }); cMessageBuilderContext.defineAnnotatedMethods(RubyMessageBuilderContext.class); }
public static void createClassClass(Ruby runtime, RubyClass classClass) { classClass.setClassIndex(ClassIndex.CLASS); classClass.setReifiedClass(RubyClass.class); classClass.kindOf = new RubyModule.JavaClassKindOf(RubyClass.class); classClass.undefineMethod("module_function"); classClass.undefineMethod("append_features"); classClass.undefineMethod("prepend_features"); classClass.undefineMethod("extend_object"); classClass.defineAnnotatedMethods(RubyClass.class); runtime.setBaseNewMethod(classClass.searchMethod("new")); }
public static RubyClass createProcClass(Ruby runtime) { RubyClass procClass = runtime.defineClass("Proc", runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR); runtime.setProc(procClass); procClass.setClassIndex(ClassIndex.PROC); procClass.setReifiedClass(RubyProc.class); procClass.defineAnnotatedMethods(RubyProc.class); return procClass; }
public static void createRubyBuilder(Ruby runtime) { RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf"); RubyClass cBuilder = protobuf.defineClassUnder("Builder", runtime.getObject(), new ObjectAllocator() { @Override public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new RubyBuilder(runtime, klazz); } }); cBuilder.defineAnnotatedMethods(RubyBuilder.class); }
public static void createClassClass(Ruby runtime, RubyClass classClass) { classClass.setClassIndex(ClassIndex.CLASS); classClass.setReifiedClass(RubyClass.class); classClass.kindOf = new RubyModule.JavaClassKindOf(RubyClass.class); classClass.undefineMethod("module_function"); classClass.undefineMethod("append_features"); classClass.undefineMethod("prepend_features"); classClass.undefineMethod("extend_object"); classClass.defineAnnotatedMethods(RubyClass.class); runtime.setBaseNewMethod(classClass.searchMethod("new")); }
public static void setup(Ruby runtime) { RubyClass cMutex = runtime.defineClass("Mutex", runtime.getObject(), new ObjectAllocator() { public IRubyObject allocate(Ruby runtime, RubyClass klass) { return new Mutex(runtime, klass); } }); cMutex.setReifiedClass(Mutex.class); cMutex.defineAnnotatedMethods(Mutex.class); }
public static void createRubyOneofBuilderContext(Ruby runtime) { RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf"); RubyModule internal = protobuf.defineModuleUnder("Internal"); RubyClass cRubyOneofBuidlerContext = internal.defineClassUnder("OneofBuilderContext", runtime.getObject(), new ObjectAllocator() { @Override public IRubyObject allocate(Ruby ruby, RubyClass rubyClass) { return new RubyOneofBuilderContext(ruby, rubyClass); } }); cRubyOneofBuidlerContext.defineAnnotatedMethods(RubyOneofBuilderContext.class); }