Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix formatting issues in README #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#TitusCrow - A Recurring Event Library
# TitusCrow - A Recurring Event Library

##Introduction
## Introduction
A common problem in both business and personal lives is recurring events. Things
like birthdays, bills due, compliance tasks, homework, meetings and a whole
swag of things have recurring patterns.
Expand All @@ -15,37 +15,37 @@ cultural or political. Things like day light savings, public holidays
(federal, state, occupational, religious), seasons that are different depending
on the hemisphere you live in etc all add to the complexity.

##Requirements
## Requirements
PHP 5.3.0 or greater.

##Background
## Background
This library does not attempt to solve every possible combination of recurrence,
however it provides the base tools to build schedules of events that have a
recurrence description. In the context of this library, this description is
referenced as a 'Temporal Expression'. These temporal expressions can be
combined, extended or be created from scratch to resolve the particular
requirement of you recurring events.

##Terminology and Usage
## Terminology and Usage
The following is a very quick attempt to describe the terminology used in this
library with some hint at how to use the various classes. I hope to have better
documentation with examples and tutorials at a later date. Also be sure to read
the API documentation.

###What Makes a Schedule
### What Makes a Schedule
A schedule is simply a collection of _events_ that occur at various _points in
time_. We represent schedules with the `TCSchedule` class.

###What Makes an Event
### What Makes an Event
An event is something of interest that happens at various _points in time_. We
represent events by implementing the `ITCEvent` interface. A simple concrete
class is provided with the `TCSimpleEvent` class.

###How To Represent Dates
### How To Represent Dates
Dates are represented with the `TCDate` class. Time is not stored in these
objects, just the date.

###How To Specify Recurring Dates
### How To Specify Recurring Dates
We use _Temporal Expressions_ to describe what dates a particular event occurs
on. The language of date recurrence is quite complex, so we use the _Expression_
pattern that is defined by the `ITCTemporalExpression` interface. Temporal
Expand All @@ -58,23 +58,23 @@ of other temporal expressions. These set expressions provide:
- Intersection `TCIntersectionTemporalExpression`
- Differences `TCDifferenceTemporalExpression`

##Interface and Classes
## Interface and Classes

###Schedule
### Schedule
This is the main class used to manage a schedule.

Create a schedule object for the subject which can say which days an
event occurs

###Schedule Element
### Schedule Element
Schedule Element is a map between an event and a temporal expression. Temporal
expression has an individual instance method to determine if dates
match.

###Temporal Expressions
### Temporal Expressions
You need a way to express how when an event occurs.

###Set Expressions
### Set Expressions
You need to represent combinations of temporal expressions.

Set combinations exist for union, intersection and difference.
Expand Down