def start(pipeline)
      raise InvalidPipelineError.new("Invalid pipeline") unless pipeline.is_a?(Pipeline::Base)
      pipeline.save! if pipeline.new_record?
      Delayed::Job.enqueue(pipeline)
      pipeline.id
    end
def start(pipeline)
      raise InvalidPipelineError.new("Invalid pipeline") unless pipeline.is_a?(Pipeline::Base)
      pipeline.save! if pipeline.new_record?
      Delayed::Job.enqueue(pipeline)
      pipeline.id
    end
Used to enqueue a pipeline execution. Raises InvalidPipelineError if the passed
 in argument is not a subclass of Pipeline::Base. The pipeline will be saved (if
 not already) and its <tt>id</tt> will be returned.