Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For some background on the issue #53 and AmpersandJS/ampersand-view#178
This should also satisfy #16 and #37
The binding store is a singleton loosely modeled after epoxy. It allows adding custom bindings to Ampersand without overwriting the default bindings and is much more powerful than a custom binding function. I did not change any of the logic inside the default-bindings.
Concerns and Notes: I moved several reusable functions into utils (following what seemed to be the pattern from ampersand-events). I would like to move setAttrbiutes and removeAttributes in ampersand-dom to clean things up. I would then move get-matches into the root as get-matches.js.
Originally I had the ampersand prefix on binding-store and default-bindings, I removed them because it made the file name too long and repetitive if you are accessing them via require e.g.
require('ampersand-dom-bindings/ampersand-binding-store')
becomes
require('ampersand-dom-bindings/binding-store')