Sha256: 0851aefda356959984e721fe6f21af8ab8bd1ea82500a92ac398a9e77b1e4a76

Contents?: true

Size: 678 Bytes

Versions: 1

Compression:

Stored size: 678 Bytes

Contents

require 'fssm/fsevents'

module FSSM::Backends
  class FSEvents
    def initialize
      @handlers = {}
      @fsevents = []
    end
    
    def add_path(path, preload=true)
      handler = FSSM::State.new(path, preload)
      @handlers["#{path}"] = handler
      
      fsevent = Rucola::FSEvents.new("#{path}") do |events|
        events.each do |event|
          handler.refresh(event.path)
        end
      end
      
      fsevent.create_stream
      fsevent.start
      @fsevents << fsevent
    end
    
    def run
      begin
        OSX.CFRunLoopRun
      rescue Interrupt
        @fsevents.each do |fsev|
          fsev.stop
        end
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chriseppstein-compass-0.8.14 lib/vendor/fssm/backends/fsevents.rb