/// <summary> /// static void w_uclass(VALUE obj, VALUE super, struct dump_arg *arg) /// </summary> /// <param name="obj"></param> /// <param name="super"></param> public void WriteUserClass(object obj, RubyClass super) { RubyObject fobj = obj as RubyObject; if (fobj != null) { RubyClass klass = fobj.Class; WriteExtended(klass, true); if (klass != super) { WriteByte(RubyMarshal.Types.UserClass); WriteUnique(klass.Symbol); } } else { throw new InvalidOperationException(); } }