Class: SayWhen::MinutesCronValue

Inherits:
CronValue show all
Defined in:
lib/say_when/cron_expression.rb

Instance Attribute Summary

Attributes inherited from CronValue

#expression, #max, #min, #part, #values

Instance Method Summary collapse

Methods inherited from CronValue

#include?, #parse, parse_number, #to_s

Constructor Details

#initialize(exp) ⇒ MinutesCronValue

Returns a new instance of MinutesCronValue.



201
202
203
# File 'lib/say_when/cron_expression.rb', line 201

def initialize(exp)
  super(:min, 0, 59, exp)
end

Instance Method Details

#last(date) ⇒ Object



214
215
216
217
218
219
220
221
# File 'lib/say_when/cron_expression.rb', line 214

def last(date)
  n = values.reverse.detect { |v| v < date.min }
  if n.blank?
    1.hour.ago(date).change(min: values.last, sec: 59)
  else
    date.change(min: n, sec: 59)
  end
end

#next(date) ⇒ Object



205
206
207
208
209
210
211
212
# File 'lib/say_when/cron_expression.rb', line 205

def next(date)
  n = values.detect { |v| v > date.min }
  if n.blank?
    1.hour.since(date).change(min: values.first, sec: 0)
  else
    date.change(min: n, sec: 0)
  end
end