Bug #9989
closedDocs give wrong information for sort block return values
Description
Under the Array.sort documentation, this statement is made:
Comparisons for the sort will be done using the <=> operator or using an optional code block.
The block must implement a comparison between a and b, and return -1, when a follows b, 0 when a and b are equivalent, or +1 if b follows a.
This is incorrect.  The default sort block is { |a,b| a <=> b }. That is ascending sort, where 2 would follow 1. However, 1 <=> 2 returns -1, not +1 as the statement claims. The statement should read:
The block must implement a comparison between a and b, and return -1 when b follows a, 0 when a and b are equivalent, or +1 if a follows b.
        
           Updated by robyoder (Rob Yoder) over 11 years ago
          Updated by robyoder (Rob Yoder) over 11 years ago
          
          
        
        
      
      This occurs under Array.sort and Array.sort! (http://www.ruby-doc.org/core-2.1.2/Array.html#method-i-sort)
Enumerable.sort vaguely states:
The block should return -1, 0, or +1 depending on the comparison between a and b.
(http://ruby-doc.org/core-2.1.2/Enumerable.html#method-i-sort)
        
           Updated by ayumin (Ayumu AIZAWA) almost 11 years ago
          Updated by ayumin (Ayumu AIZAWA) almost 11 years ago
          
          
        
        
      
      - Related to Bug #10125: Array#sort and #sort! documentation issue added
        
           Updated by stomar (Marcus Stollsteimer) over 8 years ago
          Updated by stomar (Marcus Stollsteimer) over 8 years ago
          
          
        
        
      
      - Status changed from Open to Closed
Fixed with r51859 (Array) and r57770 (Enumerable).