ractivejs/ractive — pull request #791 by martypdx (2014-06-05 17:12:04+00:00)
Title: Configuration refactor and clean-up. Some quasi-breaking changes 

Largely an internal refactoring of option/registry configuration that happens in extend and init. There are some external effects:

* Default data now resides on defaults (`Ractive.defaults.data` or `Component.defaults.data`)
* Options placed in the wrong place will not be picked up. Current behavior is more permissive in some regards.
* Plugin registries (`adaptors, components, decorators, easing, events, interpolators, partials, transitions`)
* Will find entries up the view hierarchy if not found in the extend (inheritance) hierarchy, #646 now works as expected
* Extend and init consistently. Including mixing and matching object literals and dynamic functions:
```js
Ractive.defaults.partials.xyz = 'xyz'
var Component = Ractive.extend({
partials: function( partials, data ) {
this._super( partials );
if ( data.foo ) { partials.foo = 'foo' }
}
})
var r = new Ractive({
partials: { bar: 'bar' },
data: { foo: true }
})
r.partials // 'xyz', 'bar', 'foo'
```
Note the dynamic function signature has changed from my first go at this feature. Will write up documentation for this feature for 4.1
* In consolidating the template and partial parsing code, I noticed that template #element gets don't test for el being a `