Sha256: 9a40ea4a18b9424b6b66dcdb69d75fa5b619d15071d855ed69ed736e8f828d8e

Contents?: true

Size: 477 Bytes

Versions: 14

Compression:

Stored size: 477 Bytes

Contents

module Devcenter::Previewer

  class FileListener
    require 'listen'

    def initialize(file_path, callback)
      dir = File.dirname(file_path)
      basename = File.basename(file_path)
      @listener = Listen.to(dir, force_polling: true)
      @listener.filter(%r{#{basename}})
      @listener.change(&callback)
    end

    def start
      @thread = Thread.new { @listener.start }
    end

    def stop
      @listener.stop
      Thread.kill(@thread)
    end
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
devcenter-1.1.0 lib/devcenter/previewer/file_listener.rb
devcenter-1.1.0rc2 lib/devcenter/previewer/file_listener.rb
devcenter-1.1.0rc1 lib/devcenter/previewer/file_listener.rb
devcenter-1.0.7 lib/devcenter/previewer/file_listener.rb
devcenter-1.0.6 lib/devcenter/previewer/file_listener.rb
devcenter-1.0.4 lib/devcenter/previewer/file_listener.rb
devcenter-1.0.3 lib/devcenter/previewer/file_listener.rb
devcenter-1.0.1 lib/devcenter/previewer/file_listener.rb
devcenter-1.0.0 lib/devcenter/previewer/file_listener.rb
devcenter-0.0.14 lib/devcenter/previewer/file_listener.rb
devcenter-0.0.13 lib/devcenter/previewer/file_listener.rb
devcenter-0.0.12 lib/devcenter/previewer/file_listener.rb
devcenter-0.0.11 lib/devcenter/previewer/file_listener.rb
devcenter-0.0.10 lib/devcenter/previewer/file_listener.rb