1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-02 22:58:01 +00:00
Files
til/ruby/clamp-to-an-endless-range.md
2024-12-25 22:07:58 -07:00

632 B

Clamp To An Endless Range

The Comparable#clamp method allows us to specify the bounds of a value we want. If the target value is between the bounds, then we get that value. Otherwise, we gets the nearest end of the bounds.

We can even pass a range to #clamp instead of separate lower and upper bound values. Because Ruby has beginless and endless ranges, this gives us the ergonomics to, say, clamp to any non-negative value with a 0.. endless range.

Here is what that looks like:

> 22.clamp(0..)
=> 22
> (-33).clamp(0..)
=> 0
> 0.clamp(0..)
=> 0