mojombo / chronic

Chronic is a pure Ruby natural language date parser.
http://injekt.github.com/chronic
MIT License
3.24k stars 453 forks source link

guard against nil `span` when calculating offset #388

Open pjdavis opened 5 years ago

pjdavis commented 5 years ago

Given a date range of the format "%d %b %Y to %d %b %Y" such as "01 Jan 1988 to 31 Dec 1999" chronic will throw the error NoMethodError (undefined method '+' for nil:NilClass). This happens because getting the anchor won't work for some weirder date formats and just returns nil, that in turn gets passed to the offset method.

It looks like it could probably happen with other repeaters as well, but I was unable to craft a string of sufficient silliness to cause it to happen in other repeaters.

Now, instead of throwing an error, Chronic.parse will just return nil, which is consistent with the documentation.