2020-05-15 Ruby cover? or between?
Range#=== / Range#cover?
ActiveSupport::TimeWithZone#between?を使うと日付の範囲内かどうかの判定を行うことができるが、上記の書き方の場合、始点もしくは終点が nil
の場合にエラーが出てしまう。
RubyのRange#cover?
を使うと上述の問題が回避できる。
> (Date.yesterday..Date.tomorrow).cover? Time.now
=> true
> (Date.yesterday..nil).cover? Time.now
=> true
> (nil..Date.tomorrow).cover? Time.now
=> true