Sha256: 82d85a346aa176400918bb3161813f3074f073d63dc1752b47dda0f0332337d5

Contents?: true

Size: 858 Bytes

Versions: 12

Compression:

Stored size: 858 Bytes

Contents

module Listen
  class Record
    include Celluloid

    attr_accessor :paths, :listener

    def initialize(listener)
      @listener = listener
      @paths    = _init_paths
    end

    def set_path(path, data)
      @paths[::File.dirname(path)][::File.basename(path)] = file_data(path).merge(data)
    end

    def unset_path(path)
      @paths[::File.dirname(path)].delete(::File.basename(path))
    end

    def file_data(path)
      @paths[::File.dirname(path)][::File.basename(path)] || {}
    end

    def dir_entries(path)
      @paths[path.to_s]
    end

    def build
      @paths = _init_paths
      listener.directories.each do |path|
        listener.registry[:change_pool].change(path, type: 'Dir', recursive: true, silence: true)
      end
    end

    private

    def _init_paths
      Hash.new { |h, k| h[k] = Hash.new }
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
listen-2.7.4 lib/listen/record.rb
listen-2.7.3 lib/listen/record.rb
listen-2.7.2 lib/listen/record.rb
listen-2.7.1 lib/listen/record.rb
listen-2.7.0 lib/listen/record.rb
listen-2.6.2 lib/listen/record.rb
listen-2.6.1 lib/listen/record.rb
listen-2.6.0 lib/listen/record.rb
listen-2.5.0 lib/listen/record.rb
listen-2.4.1 lib/listen/record.rb
listen-2.4.0 lib/listen/record.rb
listen-2.3.1 lib/listen/record.rb