## Bug #8242

### Fix rdoc of Range#bsearch

Status: | Closed | ||
---|---|---|---|

Priority: | Normal | ||

Assignee: | Marc-Andre Lafortune | ||

ruby -v: | ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1] | Backport: | 2.0.0: DONE |

**Description**

rdoc of Range#bsearch states "the elements must be sorted", but it does not make sense for Range.

Patch:

diff --git a/range.c b/range.c

index 1e4347e..fab0718 100644

--- a/range.c

+++ b/range.c

@@ -512,11 +512,10 @@ is_integer_p(VALUE v)

* rng.bsearch {|obj| block } -> value

*

* By using binary search, finds a value in range which meets the given

- * condition in O(log n) where n is the size of the array.

+ * condition in O(log n) where n is the size of the range.

*

* You can use this method in two use cases: a find-minimum mode and

- * a find-any mode. In either case, the elements of the array must be

- * monotone (or sorted) with respect to the block.

+ * a find-any mode.

*

* In find-minimum mode (this is a good choice for typical use case),

* the block must return true or false, and there must be a value x

@@ -524,7 +523,7 @@ is_integer_p(VALUE v)

*

* - the block returns false for any value which is less than x, and

* - the block returns true for any value which is greater than or

- * equal to i.

+ * equal to x.

*

* If x is within the range, this method returns the value x.

* Otherwise, it returns nil.

### Associated revisions

- range.c: Fix rdoc on Range#bsearch [Bug #8242]

- range.c: Fix rdoc on Range#bsearch [Bug #8242]

### History

#### #1 Updated by Marc-Andre Lafortune about 2 years ago

I understood "sorted" as a synonym of "monotone". The important part is "with respect to the block".

A range can be "sorted with respect to the block", in the same way an array can.

Note that although [-1, 0, 1] is sorted (with respect to <=>), it is not sorted with respect to {|x| x.abs}, for example.

#### #2 Updated by Zachary Scott about 2 years ago

@marcandre What do you suggest?

#### #3 Updated by Zachary Scott about 2 years ago

**Status**changed from*Open*to*Assigned***Assignee**changed from*Yusuke Endoh*to*Marc-Andre Lafortune*

#### #4 Updated by Zachary Scott about 2 years ago

**Status**changed from*Assigned*to*Closed***% Done**changed from*0*to*100*

#### #5 Updated by Tomoyuki Chikanaga about 2 years ago

**Backport**set to*2.0.0: DONE*