def run time=nil

      puts "[cron] run called #{Time.now}" if @debug
      time = self.time if time.nil?
      self.each { |cron_job|
        ok,details = cron_job.runnable?(time)
        if ok then
          @queue.enq(cron_job)
          if cron_job.once? then
            cron_job[:delete] = true
          end
        end
      }
      self.reject! { |cron_job|
        cron_job[:delete]
      }
    end
def run time=nil

      puts "[cron] run called #{Time.now}" if @debug
      time = self.time if time.nil?
      self.each { |cron_job|
        ok,details = cron_job.runnable?(time)
        if ok then
          @queue.enq(cron_job)
          if cron_job.once? then
            cron_job[:delete] = true
          end
        end
      }
      self.reject! { |cron_job|
        cron_job[:delete]
      }
    end
Check each item in this array, if runnable push it on a queue.

 We assume that this item is or simlar to CronJob. We don't call
 cron_job#job. That is the work for another thread esp. if #job
 is a Proc.