Class: SayWhen::HoursCronValue

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) ⇒ HoursCronValue

Returns a new instance of HoursCronValue.



225
226
227
# File 'lib/say_when/cron_expression.rb', line 225

def initialize(exp)
  super(:hour, 0, 24, exp)
end

Instance Method Details

#last(date) ⇒ Object



238
239
240
241
242
243
244
245
# File 'lib/say_when/cron_expression.rb', line 238

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

#next(date) ⇒ Object



229
230
231
232
233
234
235
236
# File 'lib/say_when/cron_expression.rb', line 229

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