module Listen::Adapter
def _usable_adapter_class
def _usable_adapter_class OPTIMIZED_ADAPTERS.find(&:usable?) end
def _warn_polling_fallback(options)
def _warn_polling_fallback(options) msg = options.fetch(:polling_fallback_message, POLLING_FALLBACK_MESSAGE) Listen.adapter_warn("[Listen warning]:\n #{msg}") if msg end
def select(options = {})
def select(options = {}) Listen.logger.debug 'Adapter: considering polling ...' return Polling if options[:force_polling] Listen.logger.debug 'Adapter: considering optimized backend...' return _usable_adapter_class if _usable_adapter_class Listen.logger.debug 'Adapter: falling back to polling...' _warn_polling_fallback(options) Polling rescue Listen.logger.warn format('Adapter: failed: %s:%s', $ERROR_POSITION.inspect, $ERROR_POSITION * "\n") raise end