Ruby

[Ruby]Comparableモジュールのメソッド

1年くらい前にRubyの勉強のためにComparableモジュールの便利メソッドをまとめたもの

参考
https://docs.ruby-lang.org/ja/latest/class/Comparable.html

範囲内の値か判定する

between?
引数で指定した値の範囲内か判定する

num = 5
num.between?(1, 5) # => true

str = 'c'
str.between?('a', 'g') # => true

範囲内の値を返す

clamp
指定範囲内の値を返す。
・指定範囲内であればレシーバを返す
・下限値より小さければ下限値を返す
・上限値より大きければ上限値を返す

min = 10
max = 30

5.clamp(min, max)  # => 10
70.clamp(min, max) # => 30
15.clamp(min, max) # => 15

clamp以前はこんな状態でわかりにくかったのでclampわかりやすい

min = 10
max = 30

[[5, min].max, max].min => 10