Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Range | ==

概要

Range#== other -> bool

詳細

指定された other が Range クラスのインスタンスであり、 始点と終点が == メソッドで比較して等しく、
Range#exclude_end? が同じ場合に true を返却。

サンプルコード
require 'tbpgr_utils'

bulk_puts_eval binding, <<-EOS
(2..5) == (2..5)
(2..5) == Range.new(2, 5)
Range.new(2, 5) == Range.new(2, 5)
(2...5) == Range.new(2, 5, true)
(2..4) == Range.new(2, 5, true)
EOS

__END__
下記はTbpgrUtils gemの機能
bulk_puts_eval

https://rubygems.org/gems/tbpgr_utils
https://github.com/tbpgr/tbpgr_utils

出力

(2..5) == (2..5)                   # => true
(2..5) == Range.new(2, 5)          # => true
Range.new(2, 5) == Range.new(2, 5) # => true
(2...5) == Range.new(2, 5, true)   # => true

# 範囲は同じだが、 Range#exclude_end? が異なるために一致しないケース
(2..4) == Range.new(2, 5, true)    # => false