本文整理了Java中org.jruby.RubyModule.defineClassUnder
方法的一些代码示例,展示了RubyModule.defineClassUnder
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyModule.defineClassUnder
方法的具体详情如下:
包路径:org.jruby.RubyModule
类名称:RubyModule
方法名:defineClassUnder
[英]rb_define_class_under this method should be used only as an API to define/open nested classes
[中]rb_define_class_在这个方法下,应该只作为定义/打开嵌套类的API使用
代码示例来源:origin: bazelbuild/bazel
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);
}
代码示例来源:origin: bazelbuild/bazel
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);
}
代码示例来源:origin: bazelbuild/bazel
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);
}
代码示例来源:origin: bazelbuild/bazel
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);
}
代码示例来源:origin: bazelbuild/bazel
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);
}
代码示例来源:origin: bazelbuild/bazel
public static void createRubyDescriptorPool(Ruby runtime) {
RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf");
RubyClass cDescriptorPool = protobuf.defineClassUnder("DescriptorPool", runtime.getObject(), new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
return new RubyDescriptorPool(runtime, klazz);
}
});
cDescriptorPool.defineAnnotatedMethods(RubyDescriptorPool.class);
descriptorPool = (RubyDescriptorPool) cDescriptorPool.newInstance(runtime.getCurrentContext(), Block.NULL_BLOCK);
}
代码示例来源:origin: bazelbuild/bazel
public static void createRubyOneofDescriptor(Ruby runtime) {
RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf");
RubyClass cRubyOneofDescriptor = protobuf.defineClassUnder("OneofDescriptor", runtime.getObject(), new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby ruby, RubyClass rubyClass) {
return new RubyOneofDescriptor(ruby, rubyClass);
}
});
cRubyOneofDescriptor.defineAnnotatedMethods(RubyOneofDescriptor.class);
cRubyOneofDescriptor.includeModule(runtime.getEnumerable());
}
代码示例来源:origin: bazelbuild/bazel
public static void createRubyDescriptor(Ruby runtime) {
RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf");
RubyClass cDescriptor = protobuf.defineClassUnder("Descriptor", runtime.getObject(), new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
return new RubyDescriptor(runtime, klazz);
}
});
cDescriptor.includeModule(runtime.getEnumerable());
cDescriptor.defineAnnotatedMethods(RubyDescriptor.class);
}
代码示例来源:origin: bazelbuild/bazel
public static void createRubyEnumDescriptor(Ruby runtime) {
RubyModule mProtobuf = runtime.getClassFromPath("Google::Protobuf");
RubyClass cEnumDescriptor = mProtobuf.defineClassUnder("EnumDescriptor", runtime.getObject(), new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
return new RubyEnumDescriptor(runtime, klazz);
}
});
cEnumDescriptor.includeModule(runtime.getEnumerable());
cEnumDescriptor.defineAnnotatedMethods(RubyEnumDescriptor.class);
}
代码示例来源:origin: bazelbuild/bazel
public static void createRubyRepeatedField(Ruby runtime) {
RubyModule mProtobuf = runtime.getClassFromPath("Google::Protobuf");
RubyClass cRepeatedField = mProtobuf.defineClassUnder("RepeatedField", runtime.getObject(),
new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
return new RubyRepeatedField(runtime, klazz);
}
});
cRepeatedField.defineAnnotatedMethods(RubyRepeatedField.class);
cRepeatedField.includeModule(runtime.getEnumerable());
}
代码示例来源:origin: bazelbuild/bazel
public static void createRubyMap(Ruby runtime) {
RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf");
RubyClass cMap = protobuf.defineClassUnder("Map", runtime.getObject(), new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby ruby, RubyClass rubyClass) {
return new RubyMap(ruby, rubyClass);
}
});
cMap.includeModule(runtime.getEnumerable());
cMap.defineAnnotatedMethods(RubyMap.class);
}
代码示例来源:origin: asciidoctor/asciidoctorj
public static RubyClass defineProcessorClass(Ruby rubyRuntime, String baseClassName, JRubyAsciidoctorObjectAllocator objectAllocator) {
RubyClass baseClass = getExtensionBaseClass(rubyRuntime, baseClassName);
final String rubyClassName = "JavaExtensionProxy_" + extensionCounter.getAndIncrement();
return getExtensionsModule(baseClass.getRuntime()).defineClassUnder(rubyClassName, baseClass, objectAllocator);
}
代码示例来源:origin: org.jruby/jruby-complete
public static RubyClass createVariadicInvokerClass(Ruby runtime, RubyModule module) {
RubyClass result = module.defineClassUnder("VariadicInvoker",
runtime.getObject(),
ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR);
result.defineAnnotatedMethods(VariadicInvoker.class);
result.defineAnnotatedConstants(VariadicInvoker.class);
return result;
}
代码示例来源:origin: org.jruby/jruby-complete
public static RubyClass createJavaProxyMethodClass(Ruby runtime, RubyModule Java) {
RubyClass JavaProxyMethod = Java.defineClassUnder("JavaProxyMethod",
runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR);
JavaProxyReflectionObject.registerRubyMethods(runtime, JavaProxyMethod);
JavaProxyMethod.defineAnnotatedMethods(ProxyMethodImpl.class);
return JavaProxyMethod;
}
代码示例来源:origin: org.jruby/jruby-complete
static void createWeakMap(Ruby runtime) {
RubyClass weakMap = runtime.getObjectSpaceModule().defineClassUnder("WeakMap", runtime.getObject(), new ObjectAllocator() {
public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
return new WeakMap(runtime, klazz);
}
});
weakMap.defineAnnotatedMethods(WeakMap.class);
}
代码示例来源:origin: org.jruby/jruby-complete
public static RubyClass createStructByValueClass(Ruby runtime, RubyModule ffiModule) {
final RubyClass Type = ffiModule.getClass("Type");
RubyClass sbvClass = ffiModule.defineClassUnder("StructByValue", Type, ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR);
sbvClass.defineAnnotatedMethods(StructByValue.class);
sbvClass.defineAnnotatedConstants(StructByValue.class);
Type.setConstant("Struct", sbvClass);
return sbvClass;
}
代码示例来源:origin: org.jruby/jruby-complete
public static RubyClass createInvokerClass(Ruby runtime, RubyModule module) {
RubyClass result = module.defineClassUnder("Invoker",
module.getClass("AbstractInvoker"),
ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR);
result.defineAnnotatedMethods(AbstractInvoker.class);
result.defineAnnotatedMethods(JFFIInvoker.class);
result.defineAnnotatedConstants(JFFIInvoker.class);
return result;
}
代码示例来源:origin: org.jruby/jruby-complete
public static RubyClass createEnumsClass(Ruby runtime, RubyModule ffiModule) {
RubyClass enumsClass = ffiModule.defineClassUnder("Enums", runtime.getObject(),
Allocator.INSTANCE);
enumsClass.defineAnnotatedMethods(Enums.class);
enumsClass.defineAnnotatedConstants(Enums.class);
enumsClass.includeModule(ffiModule.getConstant("DataConverter"));
return enumsClass;
}
代码示例来源:origin: org.jruby/jruby-complete
public static RubyClass createStructByReferenceClass(Ruby runtime, RubyModule ffiModule) {
RubyClass sbrClass = ffiModule.defineClassUnder("StructByReference", runtime.getObject(),
ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR);
sbrClass.defineAnnotatedMethods(StructByReference.class);
sbrClass.defineAnnotatedConstants(StructByReference.class);
sbrClass.includeModule(ffiModule.getConstant("DataConverter"));
return sbrClass;
}
代码示例来源:origin: org.jruby/jruby-complete
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));
}
内容来源于网络,如有侵权,请联系作者删除!