Exemplo n.º 1
0
        public static void Puts(BinaryOpStorage /*!*/ writeStorage, ConversionStorage <MutableString> /*!*/ tosConversion,
                                ConversionStorage <IList> /*!*/ tryToAry, object self, [NotNull] object /*!*/ val)
        {
            IList list = Protocols.TryCastToArray(tryToAry, val);

            if (list != null)
            {
                IEnumerable recEnum = IListOps.EnumerateRecursively(tryToAry, list, (_) => MutableString.CreateAscii("[...]"));
                foreach (object item in recEnum ?? list)
                {
                    Puts(writeStorage, self, ToPrintedString(tosConversion, item));
                }
            }
            else
            {
                Puts(writeStorage, self, ToPrintedString(tosConversion, val));
            }
        }
Exemplo n.º 2
0
        public void IListOps_EnumerateRecursively1()
        {
            var a = new RubyArray();
            var b = new RubyArray();

            b.Add(new RubyArray {
                new RubyArray {
                    b
                }
            });
            a.Add(b);

            var result = IListOps.EnumerateRecursively(new Runtime.ConversionStorage <System.Collections.IList>(Context), a, -1, list => {
                Assert(list == b);
                return(123);
            }).ToArray();

            Assert(result.Length == 1 && (int)result[0] == 123);
        }