module DontStallMyProcess::ProxyRegistry
Public Instance Methods
each_proxy(pid, &block)
click to toggle source
# File lib/dont-stall-my-process/proxy_registry.rb, line 25 def each_proxy(pid, &block) @proxies[pid].dup.values.each(&block) end
register(pid, key, object)
click to toggle source
# File lib/dont-stall-my-process/proxy_registry.rb, line 11 def register(pid, key, object) @proxies[pid][key] = object end
setup_proxy_registry(pid, &block)
click to toggle source
# File lib/dont-stall-my-process/proxy_registry.rb, line 3 def setup_proxy_registry(pid, &block) @empty_handler ||= {} @empty_handler[pid] = block @proxies ||= {} @proxies[pid] = {} end
unregister(pid, key) { |proxies| ... }
click to toggle source
# File lib/dont-stall-my-process/proxy_registry.rb, line 15 def unregister(pid, key) if @proxies[pid].key?(key) && block_given? yield @proxies[pid] end @proxies[pid].delete(key) # Check if all proxies are gone now and call the process. @empty_handler[pid].call if @proxies[pid].empty? end