class QuickLook::Instance
Public Class Methods
new()
click to toggle source
# File lib/quick_look.rb, line 19 def initialize @pid_map = {} end
Public Instance Methods
close(path)
click to toggle source
# File lib/quick_look.rb, line 28 def close(path) if pid = pid_for(path) Process.kill("-HUP", pid) end end
open(path)
click to toggle source
# File lib/quick_look.rb, line 23 def open(path) return if pid_for(path) add_pid path, Process.spawn("qlmanage -p #{path} >& /dev/null", pgroup: true) end
Private Instance Methods
add_pid(path, pid)
click to toggle source
# File lib/quick_look.rb, line 36 def add_pid(path, pid) @pid_map[path] = pid end
pid_alive?(pid)
click to toggle source
# File lib/quick_look.rb, line 49 def pid_alive?(pid) !!Process.getpgid(pid) rescue Errno::ESRCH # pid is dead false end
pid_for(path)
click to toggle source
# File lib/quick_look.rb, line 40 def pid_for(path) pid = @pid_map[path] if pid && !pid_alive?(pid) pid = nil @pid_map.delete(path) end pid end