def run
      @wants.each do |want|
        @haves.each do |have|
          import(have)
          retime(have, want)
          cull(have)
          group(have)

          want.subtitles += have.subtitles.clone
        end

        polish(want)
        export(want)
      end

      return true
    rescue AbortJob
      return false
    end
def run
      @wants.each do |want|
        @haves.each do |have|
          import(have)
          retime(have, want)
          cull(have)
          group(have)

          want.subtitles += have.subtitles.clone
        end

        polish(want)
        export(want)
      end

      return true
    rescue AbortJob
      return false
    end
Starts a new job.

 A job requires at least one file you {Have} and one file you {Want}
 in order to be runable. Use {Job#have} and {Job#want} to add
 and obtain specification interfaces for the job.

 Runs the job.

 @return [Boolean] true if the job succeeds, false if it fails.
   {Job#report} provides information in case of failure.