class Guard::Interactor

def background

Remove interactor so other tasks can run in foreground
def background
  idle_job.background
end

def enabled?

TODO: allow custom user idle jobs, e.g. [:pry, :sleep, :exit, ...]
def enabled?
  @enabled || @enabled.nil?
end

def foreground

Run in foreground and wait until interrupted or closed
def foreground
  idle_job.foreground
end

def handle_interrupt

def handle_interrupt
  idle_job.handle_interrupt
end

def initialize(no_interaction = false)


for Guard.
Pry and creates some custom commands and aliases
Initializes the interactor. This configures
def initialize(no_interaction = false)
  @interactive = !no_interaction && self.class.enabled?
  # TODO: only require the one used
  require "guard/jobs/sleep"
  require "guard/jobs/pry_wrapper"
  job_klass = interactive? ? Jobs::PryWrapper : Jobs::Sleep
  @idle_job = job_klass.new(self.class.options)
end

def interactive?

def interactive?
  @interactive
end

def options

def options
  @options ||= {}
end