module Enumerable def like?(val, op=:===) any? do |i| i.__send__(op, val) end end end pattern = [/\.$/, '.git'] pattern.include?('.') # -> false pattern.like?('.') # -> true
コード例がすべて。Enumerable#include?はObject#==で比較するので、正規表現によるマッチとかができない。
それはそれで正しい(Enumerable#member?という別名がつけられていることからもわかる)んだけど、あいまいに検索できれば便利だなあ、と。