あいまいなEnumerable#include?

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?という別名がつけられていることからもわかる)んだけど、あいまいに検索できれば便利だなあ、と。