From: "nagachika (Tomoyuki Chikanaga)" Date: 2012-11-24T22:18:01+09:00 Subject: [ruby-core:50039] [ruby-trunk - Feature #6670] str.chars.last should be possible Issue #6670 has been updated by nagachika (Tomoyuki Chikanaga). Assignee changed from nagachika (Tomoyuki Chikanaga) to knu (Akinori MUSHA) Hello, Sorry for late reply. OK, I assign this ticket to knu san again. Anyway I'm willing to review the patch :) BTW, I cannot apply string_bytes_to_array.patch on trunk r37835. ---------------------------------------- Feature #6670: str.chars.last should be possible https://bugs.ruby-lang.org/issues/6670#change-33816 Author: yhara (Yutaka HARA) Status: Assigned Priority: Normal Assignee: knu (Akinori MUSHA) Category: core Target version: 2.0.0 =begin Since str.chars returns an Enumerator, we need explicit to_a for some operations: str.chars.to_a.last str.chars.to_a[1,3] But often I forget that and write: str.chars.last str.chars[1,3] Besides that, I feel it is hard to explain why to_a is needed here when I'm writing artilcles for Ruby beginners. Simplest way to achieve this is to make String#chars (also #lines, #bytes and #codepoints) return an Array. Since arrays have most of the methods defined in Enumerator, this will not be a big change. For programs like str.chars.next, you can use each_char instead. =end -- http://bugs.ruby-lang.org/