Sha256: 88703116c9e8616a7e99555fb4ece0627ba9f06c4cc2e9ac6b61f29bc95984aa
Contents?: true
Size: 1.15 KB
Versions: 3
Compression:
Stored size: 1.15 KB
Contents
require 'listen/adapter/base' require 'listen/adapter/bsd' require 'listen/adapter/darwin' require 'listen/adapter/linux' require 'listen/adapter/polling' require 'listen/adapter/windows' module Listen module Adapter OPTIMIZED_ADAPTERS = %w[Darwin Linux BSD Windows] POLLING_FALLBACK_MESSAGE = "Listen will be polling for changes. Learn more at https://github.com/guard/listen#polling-fallback." def self.new(listener) adapter_class = _select(listener.options) adapter_class.new(listener) end private def self._select(options) return Polling if options[:force_polling] return _usable_adapter_class if _usable_adapter_class _warn_polling_fallback(options) Polling end def self._usable_adapter_class adapters = OPTIMIZED_ADAPTERS.map { |adapter| Adapter.const_get(adapter) } adapters.detect { |adapter| adapter.send(:usable?) } end def self._warn_polling_fallback(options) return if options[:polling_fallback_message] == false warning = options.fetch(:polling_fallback_message, POLLING_FALLBACK_MESSAGE) Kernel.warn "[Listen warning]:\n #{warning}" end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
listen-2.2.0 | lib/listen/adapter.rb |
listen-2.1.2 | lib/listen/adapter.rb |
listen-2.1.1 | lib/listen/adapter.rb |