class FseventsToVm::RecursionFilter

Attributes

recent_events[R]

Public Class Methods

new() click to toggle source
# File lib/fsevents_to_vm/recursion_filter.rb, line 5
def initialize
  @recent_events = {}
end

Public Instance Methods

ignore?(event) click to toggle source
# File lib/fsevents_to_vm/recursion_filter.rb, line 9
def ignore?(event)
  purge_old_events!
  existing_event = @recent_events[event.path]
  if existing_event && existing_event.mtime == event.mtime
    true
  else
    @recent_events[event.path] = event
    false
  end
end

Private Instance Methods

purge_old_events!() click to toggle source
# File lib/fsevents_to_vm/recursion_filter.rb, line 22
def purge_old_events!
  cutoff = Time.now - 30
  @recent_events.reject! { |path, event| event.event_time < cutoff }
end