def do_once(action_name, opts={})
      return if action_applied?(action_name)
      result = yield

      job_done = opts[:job_done_when].blank? || opts[:job_done_when].call(result)
      apply_action(action_name) if job_done
    end
def do_once(action_name, opts={})
      return if action_applied?(action_name)
      result = yield

      job_done = opts[:job_done_when].blank? || opts[:job_done_when].call(result)
      apply_action(action_name) if job_done
    end
Do something once within this tracked period

 Will only consider job done when opts[:job_done] is true

   action_name => Name to track
   {:job_done_when} => Block to call, passed result of yield