Gem Version Build Status Code Climate

Recurify is very much "work in progress" and shoudn't be used yet.

Recurify is a simple, light-weight, evaluator for Recurrence Rules. It takes a Recurrence Rule as input and returns an Enumerable, containing all Date objects resulting from this Rule in chronlogical order.


  1. Everything has to be tested. No excuses. Pending tests are forbidden.
  2. Ensure the project's test suite is still passing (run rspec).
  3. Ensure the code is still passing all rubocop checks (run rubocop).
  4. Document your changes.
  5. All commits messages have to be prefixed as follows:
    • F - Feature commits with functional changes.
      Example commit message: F implement Rule#normalize.
    • B - Bugfix commits for fixing broken stuff.
      Example commit message: B consider Rule#count in Rule#==
    • R - Refactoring commits without functional changes.
      Example commit message: R memoize Rule#normalize for performance.
    • C - Chore commits are for everything else.
      Example commit message: C upgrade to latest version of rubocop.

Prefixed commit messages may seem a bit strange at first. The intention is simply to keep functional and non-functional changes clearly apart. Therefore, R and C commits must never modify the code in lib and in spec at the same time.

Recurify is sponsored by Shore. They are currently hiring Ruby, JavaScript, iOS, and Android developers for their headquarters in Munich/Germany as well as their top-notch development teams in Sofia/Bulgaria and Madrid/Spain.