mikeric/rivets — pull request #209 by mikeric (2013-09-22 22:00:17+00:00)
Title: 0.6.0 WIP

Those interested in and using Rivets.js currently, feel free to test out this branch and report any issues so that they can be addressed before release.

#### What's new in 0.6.0:

- [x] Multiple adapters through interfaces.
- [x] Built-in `.` adapter using ES5 natives (this can be swapped out for a Watch.js or an Object.observe adapter).
- [x] Recursive keypaths (`user.address:zip`).
- [x] Recursive dependencies (`event.tax < event.location:region`).
- [x] All dependencies now stem from the target object, *not* the view's scope object.
- [x] @codepodu's fix for #75 (#115).

#### Known Issues:

1. Recursive dependencies are not re-calculated when intermediary keys are changed, only the last interface in the keypath is observed for changes.

2. The built-in adapter observes array mutations (`push`, `pop`, `unshift`, etc.) but not changes made to indexes on the array directly (`array[3] = "world"` for example).

3. The built-in adapter cannot subscribe to an array's length property. Currently you need to use a formatter to access the array's length property and just subscribe to the array itself (`list.items | length`).

#### Roadmap:

- [ ] Add specs that cover all the new features and APIs in 0.6.0.
- [ ] Regress feature #38 as per discussion in #200.
- [ ] Add a configuration option to set the root interface (currently hard-coded as `.`).
- [ ] Redo the user documentation completely.
- [ ] Address issue 1 from above.