Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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));
        }