3131-define (DAY , 24 * ? HOUR ).
3232-define (WEEK , 7 * ? DAY ).
3333-define (MONTH , 30 * ? DAY ).
34+ -define (YEAR , 365 * ? DAY ).
3435
3536new_scan_id () ->
3637 TSec = integer_to_binary (erlang :system_time (second )),
@@ -240,15 +241,17 @@ parse_non_weekday_period(Period) ->
240241 undefined
241242 end .
242243
243- parse_period_unit (Period ) when is_list (Period ) ->
244- case Period of
245- " sec" ++ _ -> ? SECOND ;
246- " min" ++ _ -> ? MINUTE ;
247- " hour" ++ _ -> ? HOUR ;
248- " day" ++ _ -> ? DAY ;
249- " week" ++ _ -> ? WEEK ;
250- " month" ++ _ -> ? MONTH ;
251- _ -> undefined
244+ % % erlfmt-ignore
245+ parse_period_unit (P ) when is_list (P ) ->
246+ if
247+ P == " s" ; P == " sec" ; P == " second" ; P == " seconds" -> ? SECOND ;
248+ P == " min" ; P == " minute" ; P == " minutes" -> ? MINUTE ;
249+ P == " h" ; P == " hrs" ; P == " hour" ; P == " hours" -> ? HOUR ;
250+ P == " d" ; P == " day" ; P == " days" -> ? DAY ;
251+ P == " w" ; P == " week" ; P == " weeks" -> ? WEEK ;
252+ P == " mon" ; P == " month" ; P == " months" -> ? MONTH ;
253+ P == " y" ; P == " year" ; P == " years" -> ? YEAR ;
254+ true -> undefined
252255 end .
253256
254257% Logging bits
@@ -297,6 +300,9 @@ parse_after_test() ->
297300parse_repeat_test () ->
298301 ? assertEqual (undefined , parse_repeat (" foo" )),
299302 ? assertEqual (undefined , parse_repeat (" ReStarT" )),
303+ ? assertEqual (undefined , parse_repeat (" 1_ms" )),
304+ ? assertEqual (undefined , parse_repeat (" 1_x" )),
305+ ? assertEqual (undefined , parse_repeat (" 1_m" )),
300306 ? assertEqual ({weekday , 1 }, parse_repeat (" mon" )),
301307 ? assertEqual ({weekday , 1 }, parse_repeat (" Monday" )),
302308 ? assertEqual ({weekday , 2 }, parse_repeat (" tuesday" )),
@@ -306,16 +312,25 @@ parse_repeat_test() ->
306312 ? assertEqual ({weekday , 6 }, parse_repeat (" sAt" )),
307313 ? assertEqual ({weekday , 7 }, parse_repeat (" sundays" )),
308314 ? assertEqual (1 , parse_repeat (" 1_sec" )),
315+ ? assertEqual (1 , parse_repeat (" 1_s" )),
309316 ? assertEqual (1 , parse_repeat (" 1_second" )),
310317 ? assertEqual (1 , parse_repeat (" 1_sec" )),
311318 ? assertEqual (2 , parse_repeat (" 2_sec" )),
312319 ? assertEqual (3 , parse_repeat (" 3_seconds" )),
313320 ? assertEqual (60 , parse_repeat (" 1_min" )),
321+ ? assertEqual (60 , parse_repeat (" 1_minute" )),
314322 ? assertEqual (2 * 60 , parse_repeat (" 2_minutes" )),
315323 ? assertEqual (60 * 60 , parse_repeat (" 1_hour" )),
324+ ? assertEqual (3 * 60 * 60 , parse_repeat (" 3_hours" )),
325+ ? assertEqual (2 * 60 * 60 , parse_repeat (" 2_h" )),
316326 ? assertEqual (24 * 60 * 60 , parse_repeat (" 1_day" )),
317327 ? assertEqual (7 * 24 * 60 * 60 , parse_repeat (" 1_week" )),
318- ? assertEqual (30 * 24 * 60 * 60 , parse_repeat (" 1_month" )).
328+ ? assertEqual (2 * 7 * 24 * 60 * 60 , parse_repeat (" 2_weeks" )),
329+ ? assertEqual (30 * 24 * 60 * 60 , parse_repeat (" 1_month" )),
330+ ? assertEqual (30 * 24 * 60 * 60 , parse_repeat (" 1_mon" )),
331+ ? assertEqual (2 * 30 * 24 * 60 * 60 , parse_repeat (" 2_months" )),
332+ ? assertEqual (365 * 24 * 60 * 60 , parse_repeat (" 1_year" )),
333+ ? assertEqual (2 * 365 * 24 * 60 * 60 , parse_repeat (" 2_year" )).
319334
320335repeat_period_test () ->
321336 % Fri, May 31, 2024 16:08:37
0 commit comments