From: Eric Hodel Date: 2009-04-08T13:10:36+09:00 Subject: [ruby-core:23150] 1.8.8 warning with Array("string") I've been using Array(obj) to ensure the obj is an Array. With 1.8.8 this now warns if the argument is a String: $ ruby18 -ve 'p Array(5)' ruby 1.8.8dev (2009-04-06 revision 23143) [i386-darwin9.6.0] [5] $ ruby18 -ve 'p Array("string")' ruby 1.8.8dev (2009-04-06 revision 23143) [i386-darwin9.6.0] -e:1: warning: treating String as Enumerable object is deprecated; use String#each_line/lines ["string"] I believe the warning is due to this behavior: $ ruby18 -ve 'p Array("multi-line\nstring")' ruby 1.8.8dev (2009-04-06 revision 23143) [i386-darwin9.6.0] -e:1: warning: treating String as Enumerable object is deprecated; use String#each_line/lines ["multi-line\n", "string"] I find it strange that Array would warn in this instance, I thought Kernel#Array as supposed to be used as a cast. Having a warning makes it less useful and makes it cumbersome to ensure an argument is an Array. PS: I really wouldn't mind if this last instance returned ["multi-line \nstring"]