Method: String#each_grapheme_cluster

Defined in:
string.c

#each_grapheme_cluster {|cstr| ... } ⇒ String #each_grapheme_clusterObject

Passes each grapheme cluster in str to the given block, or returns an enumerator if no block is given. Unlike String#each_char, this enumerates by grapheme clusters defined by Unicode Standard Annex #29 unicode.org/reports/tr29/

"a\u0300".each_char.to_a.size #=> 2
"a\u0300".each_grapheme_cluster.to_a.size #=> 1

Overloads:

  • #each_grapheme_cluster {|cstr| ... } ⇒ String

    Yields:

    • (cstr)

    Returns:

[View source]

8976
8977
8978
8979
8980
8981
# File 'string.c', line 8976

static VALUE
rb_str_each_grapheme_cluster(VALUE str)
{
    RETURN_SIZED_ENUMERATOR(str, 0, 0, rb_str_each_grapheme_cluster_size);
    return rb_str_enumerate_grapheme_clusters(str, 0);
}