Merge pull request #53 from acolyer/same_day

schedule on: today if at: time not passed
This commit is contained in:
Dzmitry Plashchynski
2016-11-16 23:25:56 +02:00
committed by GitHub
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