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