Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infinite loop when missing until parameter (and trying to .count the number of events) #154

Open
Tao-Galasse opened this issue Mar 8, 2023 · 1 comment

Comments

@Tao-Galasse
Copy link

Hello @rossta ! 👋

First of all, thanks for your gem :)

I encountered a bug where montrose get stucked in an infinite loop in this scenario :

Montrose.every(:week, interval: 1, starts: Time.zone.today).events.count

I know it seems strange to not give the until parameter, but I encountered this in a context where it was a variable which was not always initialized and its value was nil, resulting in the following :

Montrose.every(:week, interval: 1, starts: Time.zone.today, until: nil).events.count

In my application, I have to count the number of dates generated with the recurrence parameters, which is why there is the count method used in the end (and it is this one causing the error).

I know the count method is not a Montrose method, so maybe you can't do something on your side to fix this ; but I was wondering if montrose should return an error if no end_date is given ?

I noticed the starts parameter could be omitted, and the current_date would be used by default. But you obviously cannot have a default end_date, because it makes no sense.

Do you think the gem should return an error, or at least a warning or something, if there is no end given for the recurrence ? 🤔

Thanks for your time and your thoughts on this 🙂

@Tao-Galasse Tao-Galasse changed the title Infinite loop when missing until parameter Infinite loop when missing until parameter (and trying to .count the number of events) Mar 8, 2023
@rossta
Copy link
Owner

rossta commented Aug 24, 2023

It's a good question and an interesting idea. I can understand how raising an error on infinite loop for a subset of Enumerable methods would be useful. I don't immediately know of the best approach but I'd consider a patch with tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants