<commit_before>## Tickle ##

This is now the home of ***Tickle***, previously found at [github.com/noctivityinc/tickle](https://github.com/noctivityinc/tickle)

If you wish to contribute then please take a look at the Contribution section further down the page, but I'd be really, *really* grateful if anyone wishes to contribute specs. Not unit tests, but specs. This library's internals will be changing a lot over the coming months, and it would be good to have integration tests - a black-box spec of the library - to work against. Even if you've never contributed to a library before, now is your chance! I'll help anyone through with what they may need, and I promise not to be the standard snarky Open Source dictator that a lot of projects have. We'll try and improve this library together.

Take a look at the `develop` branch where all this stuff will be happening.


### DESCRIPTION ###

Tickle is a natural language parser for recurring events.
 
Tickle is designed to be a complement to [Chronic](https://rubygems.org/gems/chronic) and can interpret things such as "every 2 days, every Sunday, Sundays, Weekly, etc."

Tickle has one main method, `Tickle.parse`, which returns the next time the event should occur, at which point you simply call `Tickle.parse` again.   

### *LEGACY WARNING* ###

If you starting using Tickle pre version 0.1.X, you will need to update your code to either include the `:next_only => true` option or read correctly from the options hash.  Sorry.


### USAGE ###

You can parse strings containing a natural language interval using the `Tickle.parse` method.

You can either pass a string prefixed with the word "every", "each" or "on the" or simply the timeframe.

Tickle.parse returns a hash containing the following keys:
* `next` the next occurrence of the event.  This is NEVER today as its always the next date in the future.
* `starting` the date all calculations as based on.  If not passed as an option, the start date is right now.
* `until` the last date you want this event to run until.
* `expression` this is the natural language expression to store to run through tickle later to get the next occurrence.

Tickle returns `nil` if it cannot parse the string.

Tickle ***heavily*** uses Chronic for parsing both the event and the start date.

### OPTIONS ###<commit_msg>Fixed the grammar in the README.<commit_after>## Tickle ##

This is now the home of ***Tickle***, previously found at [github.com/noctivityinc/tickle](https://github.com/noctivityinc/tickle)

If you wish to contribute then please take a look at the Contribution section further down the page, but I'd be really, *really* grateful if anyone wishes to contribute specs. Not unit tests, but specs. This library's internals will be changing a lot over the coming months, and it would be good to have integration tests - a black-box spec of the library - to work against. Even if you've never contributed to a library before, now is your chance! I'll help anyone through with what they may need, and I promise not to be the standard snarky Open Source dictator that a lot of projects have. We'll try and improve this library together.

Take a look at the `develop` branch where all this stuff will be happening.


### DESCRIPTION ###

Tickle is a natural language parser for recurring events.
 
Tickle is designed to be a complement to [Chronic](https://rubygems.org/gems/chronic) and can interpret things such as "every 2 days", "every Sunday", “Sundays", “Weekly", etc.

Tickle has one main method, `Tickle.parse`, which returns the next time the event should occur, at which point you simply call `Tickle.parse` again.   

### *LEGACY WARNING* ###

If you starting using Tickle pre version 0.1.X, you will need to update your code to either include the `:next_only => true` option or read correctly from the options hash.  Sorry.


### USAGE ###

You can parse strings containing a natural language interval using the `Tickle.parse` method.

You can either pass a string prefixed with the word "every", "each" or "on the" or simply the timeframe.

Tickle.parse returns a hash containing the following keys:
* `next` the next occurrence of the event.  This is NEVER today as its always the next date in the future.
* `starting` the date all calculations as based on.  If not passed as an option, the start date is right now.
* `until` the last date you want this event to run until.
* `expression` this is the natural language expression to store to run through tickle later to get the next occurrence.

Tickle returns `nil` if it cannot parse the string.

Tickle ***heavily*** uses Chronic for parsing both the event and the start date.

### OPTIONS ###
{'fraction_non_alphanumeric': 0.06948898866794954, 'fraction_numerical': 0.0012828736369467607, 'mean_word_length': 4.2268156424581, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3240925', 'n_tokens_mistral': 1250, 'n_tokens_neox': 1202, 'n_words': 729}