Open tomchipchase opened 8 months ago
The following example code causes an infinite loop and a stack level too deep error:
Montrose.weekly( on: [:sunday], between: Date.new(2024, 1, 1)..Date.new(2024, 1, 7), at: Time.zone.parse("2000-01-01 21:00") )
It looks like the problem is here: https://github.com/rossta/montrose/blob/main/lib/montrose/options.rb#L278
A TimeWithZone passed to Array is split into its constituent parts:
Array(Time.zone.parse("2000-01-01 21:00")) => [0, 0, 21, 1, 1, 2000, 6, 1, false, "UTC"]
Whereas with a DateTime, for example, we would get:
Array(DateTime.parse("2000-01-01 21:00")) => [Sat, 01 Jan 2000 21:00:00 +0000]
(We're obviously able to work around this by converting the TimeWithZone to another object before passing it to montrose).
Thank you for the report. I haven’t had the chance to look into this yet. PRs are welcome!
The following example code causes an infinite loop and a stack level too deep error:
It looks like the problem is here: https://github.com/rossta/montrose/blob/main/lib/montrose/options.rb#L278
A TimeWithZone passed to Array is split into its constituent parts:
Whereas with a DateTime, for example, we would get:
(We're obviously able to work around this by converting the TimeWithZone to another object before passing it to montrose).