# File lib/listen/adapter.rb, line 45
    def self.select_and_initialize(directories, options = {}, &callback)
      return Adapters::Polling.new(directories, options, &callback) if options.delete(:force_polling)

      OPTIMIZED_ADAPTERS.each do |adapter|
        namespaced_adapter = Adapters.const_get(adapter)
        if namespaced_adapter.send(:usable_and_works?, directories, options)
          return namespaced_adapter.new(directories, options, &callback)
        end
      end

      self.warn_polling_fallback(options)
      Adapters::Polling.new(directories, options, &callback)
    end