##between?メソッド
レシーバの値が範囲内にあるかどうか調べるメソッドです。
obj.between?(min, max)
#次のコードと同義
obj >= min and obj <= max
レシーバの値が引数minとmaxの間に含まれればtrue,そうでなければfalseを返します
レシーバの値がminまたはmaxと等しいときはtrueを返します。
3.between?(1, 5) #=> true
6.between?(1, 5) #=> false
5.between?(1, 5) #=> true
##clampメソッド
レシーバの値を範囲内に収めるメソッドです。
レシーバの値が引数minより小さければminを、レシーバの値が引数maxより大きければmaxを返します。
引数minとmaxの間に含まれればレシーバの値をそのまま返します。
7.clamp(0, 10) #=> 7
12.clamp(0, 10) #=> 10
-3.clamp(0, 10) #=> 0
between?とclampメソッドは共にComparableモジュールのメソッドです。
なのでComparableモジュールをインクルードしている数値クラスやString、Timeなどでも使うことができます。
'b'.clamp('a', 'f') #=> 'b'
'g'.clamp('a', 'f') #=> 'f'
引用元
Ruby 2.6.0 リファレンスマニュアル module Comparable
https://docs.ruby-lang.org/ja/latest/class/Comparable.html