first commit
Initial Rspec setup
Move gem dependencies from app's Gemfile to gemspec
Require our dependencies explicitly since the gemspec won't
Create a fake user in the dummy app

This dummy app's User model is an in-theory stand-in for what will, in practice, be the engine users' own user models. Those user models will more often than not be called "User", but why assume?

The mattr_accessor in the Thredded module allows us to configure this user class from the context of the parent application.

For example, in your parent application's `config/initializers/thredded.rb`:

```
# Thredded.user_class = 'User'
Thredded.user_class = 'MyUser'
```
Move and rename all content filters to lib
Add uploaders. Ignore tmp uploaded files
Add models and corresponding specs
Unnecessary files removed
Add Chronic and Timecop gems
Messageboard and Role classes passing

There was some tight coupling to the ever-present User class so it had to be teased out. There's still quite a bit that can be moved out of the Messageboard class. Things like memberships should probably be pulled out from the Messageboard class into something like UserMessageboardMembership. Examples:

UserMessageboardMembership.new(user, messageboard)
UserMessageboardMembership.new(user, messageboard).save
UserMessageboardMembership.new(user, messageboard, as: 'admin')
UserMessageboardMembership.new(user, messageboard).membership_exists?
UserMessageboardMembership.members_of_messageboard_from_list(['joel', 'john']) 
# => [<User name:'joel'>, <User name:'john'>]


The messageboard shouldn't care about memberships or determining what those relationships are.

The postable_by? method is another unnecessary piece of knowledge inside this class. That shouldbe taken care of by something like WritePermissions. Example:

WritePermissions.new(user, messageboard).writeable?
Topic spec passing and cleaned up a little bit

The topic spec had a few things going on in there that didn't need to be
in there. There were several Ability related tests that should be in the
ability spec, so those have been extracted out to there for more focused
testing.

In order for topic tests to pass there is the dependency that a user
object exists and is configured in the dummy app. Creating the thredded
initializer in the dummy app and pointing it to the "fake" User got
things passing.

Post model and spec are not passing but several things in there were
cleaned up and all were wrapped in the correct Thredded module.
Add UserDetail model

Instead of shoving everything into a User model (which we don't have access to) we'll split things up into logical models. Users have particular account related details so they should be ripped out as such.
Add UserPreference model

Rip out users' global preferences into its own model. Current preferences being tracked are time_zone, and post_filter.

Migration updated to include user_preferences and user_details.
Readme updated with bare minimum
Rename README.rdoc to README.mkdn
Update README.mkdn
Extract all permissions stuff to service objects

The abilities file looked completely ridiculous so it was time to pull everything out to classes that didn't rely on any CanCan related magic. This allows for several non-essential methods in the AR classes to be extracted to those classes dealing with anything authorization related.
[JRO] AtNotifier class now working, tests passing

Instead of creating a new model to hold these very static pieces of data
just allow them to be set in the main module via mattr_accessor.
Refactor the post mailer to pull those pieces of data in instead of
another model
[JRO] Remove tests from messageboard spec

These methods were extracted out to service objects in a previous commit