@@ -2,7 +2,6 @@ defmodule Cocktail.ScheduleState do
22 @ moduledoc false
33
44 alias Cocktail . { RuleState , Schedule , Span }
5- import Cocktail.Util
65
76 @ type t :: % __MODULE__ {
87 recurrence_rules: [ RuleState . t ( ) ] ,
@@ -26,19 +25,19 @@ defmodule Cocktail.ScheduleState do
2625
2726 def new ( % Schedule { } = schedule , current_time ) do
2827 current_time =
29- if Timex . compare ( current_time , schedule . start_time ) < 0 ,
28+ if Cocktail.Time . compare ( current_time , schedule . start_time ) == :lt ,
3029 do: schedule . start_time ,
3130 else: current_time
3231
3332 recurrence_times_after_current_time =
3433 schedule . recurrence_times
35- |> Enum . filter ( & ( Timex . compare ( & 1 , current_time ) >= 0 ) )
36- |> Enum . sort ( & ( Timex . compare ( & 1 , & 2 ) <= 0 ) )
34+ |> Enum . filter ( & ( Cocktail.Time . compare ( & 1 , current_time ) in [ :gt , :eq ] ) )
35+ |> Enum . sort ( & ( Cocktail.Time . compare ( & 1 , & 2 ) in [ :lt , :eq ] ) )
3736
3837 % __MODULE__ {
3938 recurrence_rules: schedule . recurrence_rules |> Enum . map ( & RuleState . new / 1 ) ,
4039 recurrence_times: recurrence_times_after_current_time ,
41- exception_times: schedule . exception_times |> Enum . sort ( & ( Timex . compare ( & 1 , & 2 ) <= 0 ) ) ,
40+ exception_times: schedule . exception_times |> Enum . sort ( & ( Cocktail.Time . compare ( & 1 , & 2 ) in [ :lt , :eq ] ) ) ,
4241 start_time: schedule . start_time ,
4342 current_time: current_time ,
4443 duration: schedule . duration
@@ -84,7 +83,7 @@ defmodule Cocktail.ScheduleState do
8483 defp next_time_from_recurrence_times ( [ next_time | rest ] , nil ) , do: { next_time , rest }
8584
8685 defp next_time_from_recurrence_times ( [ next_time | rest ] = times , current_time ) do
87- if Timex . compare ( next_time , current_time ) <= 0 do
86+ if Cocktail.Time . compare ( next_time , current_time ) in [ :lt , :eq ] do
8887 { next_time , rest }
8988 else
9089 { current_time , times }
@@ -96,7 +95,7 @@ defmodule Cocktail.ScheduleState do
9695 defp apply_exception_time ( exceptions , nil ) , do: { false , exceptions }
9796
9897 defp apply_exception_time ( [ next_exception | rest ] = exceptions , current_time ) do
99- if Timex . compare ( next_exception , current_time ) == 0 do
98+ if Cocktail.Time . compare ( next_exception , current_time ) == :eq do
10099 { true , rest }
101100 else
102101 { false , exceptions }
@@ -115,23 +114,23 @@ defmodule Cocktail.ScheduleState do
115114 | recurrence_rules: rules ,
116115 recurrence_times: times ,
117116 exception_times: exceptions ,
118- current_time: shift_time ( time , seconds: 1 )
117+ current_time: Cocktail.Time . shift ( time , 1 , :second )
119118 }
120119
121120 { occurrence , new_state }
122121 end
123122
124123 @ spec span_or_time ( Cocktail . time ( ) | nil , pos_integer | nil ) :: Cocktail . occurrence ( )
125124 defp span_or_time ( time , nil ) , do: time
126- defp span_or_time ( time , duration ) , do: Span . new ( time , shift_time ( time , seconds: duration ) )
125+ defp span_or_time ( time , duration ) , do: Span . new ( time , Cocktail.Time . shift ( time , duration , :second ) )
127126
128127 @ spec min_time_for_rules ( [ RuleState . t ( ) ] ) :: Cocktail . time ( ) | nil
129128 defp min_time_for_rules ( [ ] ) , do: nil
130129 defp min_time_for_rules ( [ rule ] ) , do: rule . current_time
131130
132131 defp min_time_for_rules ( rules ) do
133132 rules
134- |> Enum . min_by ( & Timex . to_erl ( & 1 . current_time ) )
133+ |> Enum . min_by ( & Cocktail.Time . to_erl ( & 1 . current_time ) )
135134 |> Map . get ( :current_time )
136135 end
137136
0 commit comments