ActiveSupportの拡張かと思ったらRubyの実装で、原理を知らなかったのでメモ
環境
$ ruby -v ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]
出典
比較演算子 <=> をもとに self が min と max の範囲内(min, max を含みます)にあるかを判断します。以下のコードと同じです。
self >= min and self <= max
- module Comparable (Ruby 2.6.0)
例
数字はもちろん
3.between?(1,10) # => true
文字列もできる
"e".between?("a","f") # => true "e".between?("a","c") # => false
日付の文字列もできるが、タイムゾーンとかの考慮が少ないためあまりおすすめはしない
"2019-1-20".between?("2018-1-10","2019-2-10") # => true