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