[ruby-core:113251] [Ruby master Feature#19600] Method `clamp?`

Issue #19600 has been reported by sawa (Tsuyoshi Sawada). ---------------------------------------- Feature #19600: Method `clamp?` https://bugs.ruby-lang.org/issues/19600 * Author: sawa (Tsuyoshi Sawada) * Status: Open * Priority: Normal ---------------------------------------- Currently, we have pairs of non-predicate and predicate methods like `String#match` and `String#match?`. They are brain-friendly, and make programmers happier. Along this line, I propose the following: 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 range arguments, 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#clamp?` -- https://bugs.ruby-lang.org/

Issue #19600 has been updated by nobu (Nobuyoshi Nakada). 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. ---------------------------------------- Feature #19600: Method `clamp?` https://bugs.ruby-lang.org/issues/19600#change-102812 * Author: sawa (Tsuyoshi Sawada) * Status: Open * Priority: Normal ---------------------------------------- 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?` -- https://bugs.ruby-lang.org/

Issue #19600 has been updated by nobu (Nobuyoshi Nakada). https://github.com/ruby/ruby/pull/8056 ---------------------------------------- Feature #19600: Method `clamp?` https://bugs.ruby-lang.org/issues/19600#change-103819 * Author: sawa (Tsuyoshi Sawada) * Status: Open * Priority: Normal ---------------------------------------- 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?` -- https://bugs.ruby-lang.org/

Issue #19600 has been updated by matz (Yukihiro Matsumoto). 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. ---------------------------------------- Feature #19600: Method `clamp?` https://bugs.ruby-lang.org/issues/19600#change-103840 * Author: sawa (Tsuyoshi Sawada) * Status: Closed * Priority: Normal ---------------------------------------- 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?` -- https://bugs.ruby-lang.org/
participants (4)
-
matz (Yukihiro Matsumoto)
-
nobu (Nobuyoshi Nakada)
-
nobu (Nobuyoshi Nakada)
-
sawa (Tsuyoshi Sawada)