[#83107] Alias Enumerable#include? to Enumerable#includes? — Alberto Almagro <albertoalmagro@...>

Hello,

9 messages 2017/10/04

[ruby-core:83570] [Ruby trunk Feature#14055][Rejected] String#casecmp should use Unicode folding

From: shyouhei@...
Date: 2017-10-26 01:28:12 UTC
List: ruby-core #83570
Issue #14055 has been updated by shyouhei (Shyouhei Urabe).

Status changed from Open to Rejected

Yes, we have unicode-aware case folding.  But the problem is, because String#casecmp returns either -1, 0, or 1, we need to define a total ordering of strings in case-insensitive manner. It's pretty difficult (if not impossible).

If you are not interested in sorting strings but only for comparison, you can use String#casecmp? method (note the "?").  See also: https://bugs.ruby-lang.org/issues/12786

----------------------------------------
Feature #14055: String#casecmp should use Unicode folding
https://bugs.ruby-lang.org/issues/14055#change-67595

* Author: rbjl (Jan Lelis)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
The following string and symbol methods are currently only ASCII aware:

- String#casecmp
- String#casecmp!
- Symbol#casecmp
- Symbol#casecmp!

For example:

    "a".casecmp("A") #=> 0
    "ä".casecmp("Ä") #=> 1

Now that Ruby has implemented case-folding (which is meant for comparing strings, see http://unicode.org/faq/casemap_charprop.html#2), it should be used when doing a casecmp on Unicode strings:

    "Ä".downcase(:fold) == "ä" #=> true



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next