schedule today if at: time not passed

This commit is contained in:
Adrian Colyer
2016-11-06 15:47:50 +00:00
parent 1d9d30ef89
commit 3f9ea8350d
2 changed files with 11 additions and 0 deletions

View File

@@ -48,6 +48,7 @@ module Crono
def initial_day
return Time.now unless @on
day = Time.now.beginning_of_week.advance(days: @on)
day = day.change(time_atts)
return day if day.future?
@period.from_now.beginning_of_week.advance(days: @on)
end

View File

@@ -49,6 +49,16 @@ describe Crono::Period do
expect(@period.next).to be_eql(tuesday)
end
end
it 'should return today on the first run if not too late' do
@period = Crono::Period.new(1.week, on: :sunday, at: '22:00')
Timecop.freeze(Time.now.beginning_of_week.advance(days: 6)
.change(hour: 21, min: 0)) do
expect(@period.next).to be_eql(
Time.now.beginning_of_week.advance(days: 6).change(hour: 22, min: 0)
)
end
end
end
context 'in daily basis' do