Project

General

Profile

Actions

Feature #19600

closed

Method `clamp?`

Added by sawa (Tsuyoshi Sawada) 12 months ago. Updated 9 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:113251]

Description

Currently, we have pairs of non-predicate and predicate methods like String#match and String#match?. Along this line, I propose the following. They are brain-friendly, and make programmers happier by saving them from terminology hell.

  1. Since by #19588, Comparable#clamp's behavior is made the same as Range#cover? for range arguments, alias Range#cover? as Range#clamp?.
  2. Synchronize the specification of Comparable#between? with Comparable#clamp, i.e.,
    a. Allow Comparable#between? to take a range argument, and
    b. Allow Comparable#between? to take nil as either or both of its arguments, or as either or both ends of its range argument.
  3. Alias Comparable#between? as Comparable#clamped?
Actions #1

Updated by sawa (Tsuyoshi Sawada) 12 months ago

  • Description updated (diff)
Actions #2

Updated by sawa (Tsuyoshi Sawada) 12 months ago

  • Description updated (diff)

Updated by nobu (Nobuyoshi Nakada) 12 months ago

Since the method clamp makes a value covered by a range from an uncovered value, clamp? doesn't feel same as cover? or between?, to me.

Extending Comparable#between? sounds nice.

Updated by matz (Yukihiro Matsumoto) 9 months ago

  • Status changed from Open to Closed

This issue includes multiple proposals, and the rationale is only explained 'brain-friendly', which may vary person to person.
Please make sure one issue contains only one proposal, with subjective rationale or real world use-cases.

For this particular case, I am not convinced by any of the proposals.

Matz.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0