概要
Range#=== obj -> bool
Range#include?(obj) -> bool
Range#member?(obj) -> bool
詳細
obj が範囲内に含まれている時に真を返却。
Range#=== は case 文で使用。
サンプルコード
require 'tbpgr_utils' [:include?, :member?, :===].each do |m| p "*** Range##{m} ***" bulk_puts_eval binding, <<-EOS (2..5).send(m, 2) (2..5).send(m, 5) (2..5).send(m, 6) EOS end [*'a'..'z'].shuffle.take(10).each do |x| print "#{x} in " case x when ('a'..'f') p 'a to f' when ('g'..'i') p 'g to i' else p 'other' end end __END__ 下記はTbpgrUtils gemの機能 bulk_puts_eval https://rubygems.org/gems/tbpgr_utils https://github.com/tbpgr/tbpgr_utils
出力
"*** Range#include? ***" (2..5).send(m, 2) # => true (2..5).send(m, 5) # => true (2..5).send(m, 6) # => false "*** Range#member? ***" (2..5).send(m, 2) # => true (2..5).send(m, 5) # => true (2..5).send(m, 6) # => false "*** Range#=== ***" (2..5).send(m, 2) # => true (2..5).send(m, 5) # => true (2..5).send(m, 6) # => false h in "g to i" y in "other" s in "other" j in "other" d in "a to f" u in "other" i in "g to i" p in "other" n in "other" k in "other"