private static Stream /*!*/ GetStream(ConversionStorage <MutableString> /*!*/ toStr, RespondToStorage /*!*/ respondTo, object port) { var toStrSite = toStr.GetSite(TryConvertToStrAction.Make(toStr.Context)); MutableString str = toStrSite.Target(toStrSite, port); if (str != null) { return(new MutableStringStream(str)); } IOWrapper wrapper = RubyIOOps.CreateIOWrapper(respondTo, port, FileAccess.Read); if (!wrapper.CanRead) { throw RubyExceptions.CreateTypeError("instance of IO needed"); } return(wrapper); }
/// <summary> /// Converts an object to string using try-to_str protocol (<see cref="TryConvertToStrAction"/>). /// </summary> public static MutableString TryCastToString(ConversionStorage <MutableString> /*!*/ stringTryCast, object obj) { var site = stringTryCast.GetSite(TryConvertToStrAction.Make(stringTryCast.Context)); return(site.Target(site, obj)); }