From: Eero Saynatkari Date: 2005-12-29T04:23:49+09:00 Subject: Re: Included modules and String Rich wrote: > I looked at the RDoc for the String class and found that the class > includes the Enumerable module. I'd have thought that meant that you > could call methods like inject or collect on a string, the method > would iterate over all the characters in the string. > > However, I get the following instead: > >>"12345".collect { |x| x.to_i} > ==> [12345] # instead of the expected [1,2,3,4,5]. > > Am I misunderstanding how include works in this case? Thanks alot. The reason for this is that Enumerable merely wraps the object's #each method. In the case of String, #each by default splits the string at each line (as determined by the record separator constant $/). Using Enumerator works around this nicely :) > -Rich E -- Posted via http://www.ruby-forum.com/.