public static MutableString/*!*/ Inspect(RubyIO/*!*/ self) {
var result = MutableString.CreateMutable(self.Context.GetIdentifierEncoding());
result.Append("#<");
result.Append(self.Context.GetClassOf(self).GetName(self.Context));
result.Append(':');
if (self.Initialized) {
switch (self.ConsoleStreamType) {
case ConsoleStreamType.Input: result.Append("<STDIN>"); break;
case ConsoleStreamType.Output: result.Append("<STDOUT>"); break;
case ConsoleStreamType.ErrorOutput: result.Append("<STDERR>"); break;
case null: result.Append("fd ").Append(self.GetFileDescriptor().ToString(CultureInfo.InvariantCulture)); break;
}
} else {
RubyUtils.AppendFormatHexObjectId(result, RubyUtils.GetObjectId(self.Context, self));
}
result.Append('>');
return result;
}