As per Eero Saynatkari's suggestion, my response is:

This change was made to bring #each_char in line with all the other
#each* methods which all return self, not a copy. It should follow the
same pattern unless there is a crucial reason not to, and in that case
it must be clearly documented.

On Fri, May 22, 2009 at 9:20 PM, Yukihiro Matsumoto <matz / ruby-lang.org> wrote:
> Hi,
>
> In message "Re: [ruby-core:23499] [Bug #1487] String#each_char must return self"
>  >
> |str.each_char{} currently returns a copy of str. It should return self. This also affects Ruby 1.8.7
>
> Before accepting the proposal, could you explain why we _should_
> return the original string?   
> each_char yet.
>
>  
>
>