class SassListen::Adapter::Polling

Polling Adapter that works cross-platform and has no dependencies. This is the adapter that uses the most CPU processing power and has higher file IO than the other implementations.

Constants

DEFAULTS
OS_REGEXP

Private Instance Methods

_configure(_, &callback) click to toggle source
# File lib/sass-listen/adapter/polling.rb, line 15
def _configure(_, &callback)
  @polling_callbacks ||= []
  @polling_callbacks << callback
end
_process_event(dir, _) click to toggle source
# File lib/sass-listen/adapter/polling.rb, line 32
def _process_event(dir, _)
  _queue_change(:dir, dir, '.', recursive: true)
end
_run() click to toggle source
# File lib/sass-listen/adapter/polling.rb, line 20
def _run
  loop do
    start = Time.now.to_f
    @polling_callbacks.each do |callback|
      callback.call(nil)
      nap_time = options.latency - (Time.now.to_f - start)
      # TODO: warn if nap_time is negative (polling too slow)
      sleep(nap_time) if nap_time > 0
    end
  end
end