Class: SayWhen::SecondsCronValue

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

Returns a new instance of SecondsCronValue.



177
178
179
# File 'lib/say_when/cron_expression.rb', line 177

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

Instance Method Details

#last(date) ⇒ Object



190
191
192
193
194
195
196
197
# File 'lib/say_when/cron_expression.rb', line 190

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

#next(date) ⇒ Object



181
182
183
184
185
186
187
188
# File 'lib/say_when/cron_expression.rb', line 181

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