// create constructor
SkinnyMethodAdapter initMethod = new SkinnyMethodAdapter(cw, ACC_PUBLIC, "<init>", sig(void.class, Ruby.class, RubyClass.class), null, null);
if (isRubyHierarchy) {
// superclass is in the Ruby object hierarchy; invoke typical Ruby superclass constructor
initMethod.aloadMany(0, 1, 2);
initMethod.invokespecial(p(superClass), "<init>", sig(void.class, Ruby.class, RubyClass.class));
} else {
// superclass is not in Ruby hierarchy; store objects and call no-arg super constructor
cw.visitField(ACC_FINAL | ACC_PRIVATE, "$ruby", ci(Ruby.class), null, null).visitEnd();
cw.visitField(ACC_FINAL | ACC_PRIVATE, "$rubyClass", ci(RubyClass.class), null, null).visitEnd();