Method: FSEvent::WatchSet#add

Defined in:
lib/fsevent/watchset.rb

#add(watchee_device_name_pat, status_name_pat, watcher_device_name, reaction) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/fsevent/watchset.rb', line 31

def add(watchee_device_name_pat, status_name_pat, watcher_device_name, reaction)
  @watch_defs[watcher_device_name][watchee_device_name_pat][status_name_pat] = reaction
  if /\*\z/ =~ watchee_device_name_pat
    watchee_device_name_prefix = $`
    if /\*\z/ =~ status_name_pat
      status_name_prefix = $`
      @watch_prefix_prefix[watchee_device_name_prefix][status_name_prefix][watcher_device_name] = reaction
    else
      @watch_prefix_exact[watchee_device_name_prefix][status_name_pat][watcher_device_name] = reaction
    end
  else
    if /\*\z/ =~ status_name_pat
      status_name_prefix = $`
      @watch_exact_prefix[watchee_device_name_pat][status_name_prefix][watcher_device_name] = reaction
    else
      @watch_exact_exact[watchee_device_name_pat][status_name_pat][watcher_device_name] = reaction
    end
  end
end