On 3/11/08, Clifford Heath <no / spam.please.net> wrote:
> I've just been tripped up by this behaviour, which I haven't
>  seen documented anywhere:
>
>  "hello".to_a    #=> ["hello"]
>  "".to_a         #=> []
>
>  Why does an empty string get omitted from the array?
>  Why doesn't Enumerable#to_a document this behaviour of strings?
>  This is completely broken (Ruby 1.8.6)

I disagree. #to_a doesn't just encase the string object in an
otherwise empty array, rather it casts the string to an array, as
appropriate:

"".to_a => []
"test".to_a => ["test"]
"this\nis\na\n\test".to_a => ["this\n", "is\n", "a\n", "test"]

The array equivalent of an empty string is an empty array. Both, for
instance, have a #size of 0.

Christopher