# File lib/guard/listener.rb, line 35
    def self.select_and_init(options = {})
      watchdir = options && options[:watchdir] && File.expand_path(options[:watchdir])
      watchdir = Dir.pwd unless watchdir

      no_vendor = options && options[:no_vendor] ? options[:no_vendor] : false

      if mac? && Darwin.usable?(no_vendor)
        Darwin.new(watchdir, options)
      elsif linux? && Linux.usable?(no_vendor)
        Linux.new(watchdir, options)
      elsif windows? && Windows.usable?(no_vendor)
        Windows.new(watchdir, options)
      else
        UI.info 'Using polling (Please help us to support your system better than that).'
        Polling.new(watchdir, options)
      end
    end