This blog is part of our Ruby 2.4 series.
In Ruby 2.4, clamp method is added to the Comparable module. This method can be used to clamp an object within a specific range of values.
clamp method takes min and max as two arguments to define the range of values
in which the given argument should be clamped.
clamp can be used to keep a number within the range of min, max.
10.clamp(5, 20)
=> 10
10.clamp(15, 20)
=> 15
10.clamp(0, 5)
=> 5
Similarly, strings can also be clamped within a range.
"e".clamp("a", "s")
=> "e"
"e".clamp("f", "s")
=> "f"
"e".clamp("a", "c")
=> "c"
"this".clamp("thief", "thin")
=> "thin"
Internally, this method relies on applying the spaceship <=> operator between the object and the min & max arguments.
if x <=> min < 0, x = min;
if x <=> max > 0 , x = max
else x

Written byAbhishek Jain
Related blogs
- 01Ruby 2.4 has optimized enumerable min max methodsSeptember 28, 2017 · Chirag Shah
- 02CSV::Row#each etc. return enumerator when no block givenSeptember 25, 2017 · Sushant Mittal
- 03Ruby 2.4 DateTime#to_time & Time#to_time keeps infoSeptember 19, 2017 · Sushant Mittal
- 04Avoid exception for dup on IntegerAugust 1, 2017 · Rohit Arolkar