Skip to content
This repository has been archived by the owner on Jan 11, 2019. It is now read-only.

Expose ParseStrict to error on too many fields #36

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

krallin
Copy link

@krallin krallin commented Aug 1, 2018

Parse currently ignores any tokens after the 7th, which means invalid
cron expressions might be allowed as long as invalid tokens are found
after the 7th character.

In some use cases (e.g. validating cron expressions provided by a user),
this might not be desirable. To allow for this use case, this adds a
ParseStrict function that returns an error if too many fields are
provided (it retains backwards compatibility by not touching Parse).


For some context, here's where I ran into this and could use a ParseStrict 😄 : aptible/supercronic#34

Thanks!

krallin and others added 4 commits August 1, 2018 16:10
Parse currently ignores any tokens after the 7th, which means invalid
cron expressions might be allowed as long as invalid tokens are found
after the 7th character.

In some use cases (e.g. validating cron expressions provided by a user),
this might not be desirable. To allow for this use case, this adds a
ParseStrict function that returns an error if too many fields are
provided (it retains backwards compatibility by not touching Parse).
If an interval if out of order, it ends up emitting 0000-00-00 00:00:00
as the "next" time, which is undesirable. This patch updates Parse to
simply reject such intervals.

Since the rejection reason might not be super obvious (the range 6-7 is
actually translated to 6-0, which makes it invalid), let's also print
the original vs. normalized form for clarity.

See: aptible/supercronic#63
This fork is to support Supercronic, and that's how it's imported there.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant