class Guard::Internals::Plugins

def matcher_for(filter)

def matcher_for(filter)
  case filter
  when String, Symbol
    shortname = filter.to_s.downcase.delete("-")
    ->(plugin) { plugin.name == shortname }
  when Regexp
    ->(plugin) { plugin.name =~ filter }
  when Hash
    lambda do |plugin|
      filter.all? do |k, v|
        case k
        when :name
          plugin.name == v.to_s.downcase.delete("-")
        when :group
          plugin.group.name == v.to_sym
        end
      end
    end
  end
end