James Gray
12/28/2005 4:09:00 PM
On Dec 28, 2005, at 10:03 AM, 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.
String iterates over lines of text by default, but that's easily
changed:
>> require "enumerator"
=> true
>> "12345".enum_for(:each_byte).map { |byte| byte - ?0 }
=> [1, 2, 3, 4, 5]
Hope that helps.
James Edward Gray II