Exemplo n.º 1
0
        private static RubyArray/*!*/ CharacterSplit(MutableString/*!*/ str, int limit, RubyEncoding kcoding) {
            if (kcoding != null) {
                str = str.ChangeEncoding(kcoding, false);
            }
            
            RubyArray result = new RubyArray();
            
            var charEnum = str.GetCharacters();
            int i = 0;
            while (limit <= 0 || result.Count < limit - 1) {
                if (!charEnum.MoveNext()) {
                    break;
                }

                result.Add(str.CreateInstance().Append(charEnum.Current).TaintBy(str));
                i++;
            }

            if (charEnum.HasMore || limit < 0) {
                result.Add(str.CreateInstance().AppendRemaining(charEnum).TaintBy(str));
            }
            
            return result;
        }