Sha256: 47e06b9d429f3b71df9414d7256dabc42056fe9076721c26a09afe9315eaf044

Contents?: true

Size: 1.16 KB

Versions: 146

Compression:

Stored size: 1.16 KB

Contents

module Guard

  # Listener implementation for Mac OS X `FSEvents`.
  #
  class Darwin < Listener

    # Initialize the Listener.
    #
    def initialize(*)
      super
      @fsevent = FSEvent.new
    end

    # Start the listener.
    #
    def start
      super
      worker.run
    end

    # Stop the listener.
    #
    def stop
      super
      worker.stop
    end

    # Check if the listener is usable on the current OS.
    #
    # @return [Boolean] whether usable or not
    #
    def self.usable?(no_vendor = false)
      return false unless RbConfig::CONFIG['target_os'] =~ /darwin(9|1\d)/i

      $LOAD_PATH << File.expand_path('../../../vendor/darwin/lib', __FILE__) unless no_vendor
      require 'rb-fsevent'
      true
    rescue LoadError
      false
    end

    private

    # Get the listener worker.
    #
    def worker
      @fsevent
    end

    # Watch the given directory for file changes.
    #
    # @param [String] directory the directory to watch
    #
    def watch(directory)
      worker.watch(directory) do |modified_dirs|
        files = modified_files(modified_dirs)
        @callback.call(files) unless files.empty?
      end
    end

  end
end

Version data entries

146 entries across 54 versions & 3 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/guard-1.0.1/lib/guard/listeners/darwin.rb
classiccms-0.7.5 vendor/bundle/gems/guard-1.0.2/lib/guard/listeners/darwin.rb
classiccms-0.7.5 vendor/bundle/gems/guard-1.0.3/lib/guard/listeners/darwin.rb
classiccms-0.7.4 vendor/bundle/gems/guard-1.0.3/lib/guard/listeners/darwin.rb
classiccms-0.7.4 vendor/bundle/gems/guard-1.0.2/lib/guard/listeners/darwin.rb
classiccms-0.7.4 vendor/bundle/gems/guard-1.0.1/lib/guard/listeners/darwin.rb
classiccms-0.7.3 vendor/bundle/gems/guard-1.0.2/lib/guard/listeners/darwin.rb
classiccms-0.7.3 vendor/bundle/gems/guard-1.0.1/lib/guard/listeners/darwin.rb
classiccms-0.7.3 vendor/bundle/gems/guard-1.0.3/lib/guard/listeners/darwin.rb
classiccms-0.7.2 vendor/bundle/gems/guard-1.0.1/lib/guard/listeners/darwin.rb
classiccms-0.7.2 vendor/bundle/gems/guard-1.0.2/lib/guard/listeners/darwin.rb
classiccms-0.7.2 vendor/bundle/gems/guard-1.0.3/lib/guard/listeners/darwin.rb
classiccms-0.7.1 vendor/bundle/gems/guard-1.0.1/lib/guard/listeners/darwin.rb
classiccms-0.7.1 vendor/bundle/gems/guard-1.0.2/lib/guard/listeners/darwin.rb
classiccms-0.7.1 vendor/bundle/gems/guard-1.0.3/lib/guard/listeners/darwin.rb
classiccms-0.7.0 vendor/bundle/gems/guard-1.0.1/lib/guard/listeners/darwin.rb
classiccms-0.7.0 vendor/bundle/gems/guard-1.0.3/lib/guard/listeners/darwin.rb
classiccms-0.7.0 vendor/bundle/gems/guard-1.0.2/lib/guard/listeners/darwin.rb
classiccms-0.6.9 vendor/bundle/gems/guard-1.0.2/lib/guard/listeners/darwin.rb
classiccms-0.6.9 vendor/bundle/gems/guard-1.0.3/lib/guard/listeners/darwin.rb