Issue #9989 has been updated by Rob Yoder. 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) ---------------------------------------- Bug #9989: Docs give wrong information for sort block return values https://bugs.ruby-lang.org/issues/9989#change-47427 * Author: Rob Yoder * Status: Open * Priority: Normal * Assignee: Zachary Scott * Category: doc * Target version: current: 2.2.0 * ruby -v: 2.1.2 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- 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. -- https://bugs.ruby-lang.org/