module DateTimeStepWith::CronStepper
Public Instance Methods
step_with_cron(cron_expression, limit,step=nil) { |d| ... }
click to toggle source
# File lib/date_time_step_with/cron_stepper.rb, line 3 def step_with_cron(cron_expression, limit,step=nil, &block) #if no step given, then iterate on the minimum cron value if step.nil? && self.respond_to?(:minute) step = (1.to_f/24/60) #one minute else step = step || 1# or one day end #Caching if (@step_with_cron_cache == "#{cron_expression} #{limit} #{step}") @step_with_cron_collection ||= self.step(limit,step).select{|d| d.match_cron?(cron_expression) } else @step_with_cron_cache = "#{cron_expression} #{limit} #{step}" @step_with_cron_collection = self.step(limit,step).select{|d| d.match_cron?(cron_expression) } end if block_given? @step_with_cron_collection.each do |d| yield d end else @step_with_cron_collection end end