Recurify

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 Rule as input and returns an Enumerable, yielding all occurrences (i.e. simple Date objects) resulting from the Rule's evaluation in chronlogical order.

Contributions

  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 bump version to 1.0.0.

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.

License

See LICENSE.