Add @getTemplateFunction to BaseCollectionView

This makes it easier to render a containing template for a
BaseCollectionView. For example, you may want to have a heading on top
of the list:

h2 This is the heading

ul.the-list

Then in the CollectionView you could do:

class MyCollectionView extends BaseCollectionView

  template: require './template'

  itemView: require './some_item_view'

  listSelector: 'ul.the-list'

The `listSelector` property is necessary to tell the CollectionView
which element should serve as the container for the item views.
Updated Todo template and styles for Bootstrap
Added 'done' class to todo when completed along with updated tests
Update TodoView on model change - approach 1

In our first approach at updating the TodoView when the model changes
we'll listen for `change` events and then update the view accordingly.
While completely re-rendering the view may be fine for simple cases like
this it becomes a bit heavy-handed when the view represents multiple
attributes that may change

We would rather update only the elements whose model attributes have
changed.
Update TodoView on model change - approach 2

This time we are listening for changes to individual model attributes
and only updating the related elements. While this is cleaner on the
front-end, it increases the complexity of the code.

It would be nice to have a way of declaratively mapping attributes to
elements, wouldn't it?
Update TodoView on model change - approach 3

Backbone.stickit (http://nytimes.github.io/backbone.stickit) is perfect
for our use case. It provides a declarative method of binding attributes
to view elements without having to add any markup to the HTML.

Because these bindings are also run as part of the initial render
process we can even remove the attributes from the .jade template and
let Backbone.stickit handle the initial values, not just changes.
Move @stickit() to BaseView

In our BaseView we can be confident that if a `bindings` property is
present in the extended view then we should call `@stickit()` at the end
of the `render` method.
Added test for two-way binding of checkbox

As a bonus of using Backbone.Stickit, the checkbox binding is two-way.
In other words, updating the model changes the view but changing the
view (by checking the box) now updates the model.
Run coffeelint on tests as well as app
Revert "Run coffeelint on tests as well as app"

This reverts commit 1088b04a0aad941af85cbd6131a40cff6c24cf6e.
Add @getTemplateFunction to BaseCollectionView

This makes it easier to render a containing template for a
BaseCollectionView. For example, you may want to have a heading on top
of the list:

h2 This is the heading

ul.the-list

Then in the CollectionView you could do:

class MyCollectionView extends BaseCollectionView

  template: require './template'

  itemView: require './some_item_view'

  listSelector: 'ul.the-list'

The `listSelector` property is necessary to tell the CollectionView
which element should serve as the container for the item views.
Updated Todo template and styles for Bootstrap
Added 'done' class to todo when completed along with updated tests
Update TodoView on model change - approach 1

In our first approach at updating the TodoView when the model changes
we'll listen for `change` events and then update the view accordingly.
While completely re-rendering the view may be fine for simple cases like
this it becomes a bit heavy-handed when the view represents multiple
attributes that may change

We would rather update only the elements whose model attributes have
changed.
Update TodoView on model change - approach 2

This time we are listening for changes to individual model attributes
and only updating the related elements. While this is cleaner on the
front-end, it increases the complexity of the code.

It would be nice to have a way of declaratively mapping attributes to
elements, wouldn't it?
Update TodoView on model change - approach 3

Backbone.stickit (http://nytimes.github.io/backbone.stickit) is perfect
for our use case. It provides a declarative method of binding attributes
to view elements without having to add any markup to the HTML.

Because these bindings are also run as part of the initial render
process we can even remove the attributes from the .jade template and
let Backbone.stickit handle the initial values, not just changes.
Move @stickit() to BaseView

In our BaseView we can be confident that if a `bindings` property is
present in the extended view then we should call `@stickit()` at the end
of the `render` method.
Added test for two-way binding of checkbox

As a bonus of using Backbone.Stickit, the checkbox binding is two-way.
In other words, updating the model changes the view but changing the
view (by checking the box) now updates the model.
Revert "Run coffeelint on tests as well as app"

This reverts commit 1088b04a0aad941af85cbd6131a40cff6c24cf6e.
Merge remote-tracking branch 'origin/todo-updates' into todo-updates