- There was a bug in the new component(name) method to obtain the
component, because it wouldn’t work for local components. Fixing this
properly took a significant refactoring:
- the ComponentCollection gains its own fallback behavior, much simpler to implement than in LocalComponentCollection.
- UrlComponent is now gone and Component gains that functionality; it keeps a reference to the collection itself now.
- add a lot of free-standing functions to the methods.
- an earlier hack passing the component collection through an argument is now gone.
- The new .component() API to get a component from a collection explicitly in order to get its URL is gone again as it conflicted with an earlier API on local component collections. Instead use collection.get_component(name).
- BowerStatic failed to initialize if a component was discovered without a main. These are handled now – if you try to include a path to such a resource, no extra inclusions are generated. Fixes #5.
- If main was an array, only the first such resource was loaded. The correct behavior should be to load all these resources. This required a reworking of how resources get created; instead of creating a single resource for a path, a list of resources is created everywhere. Fixes #6 (and was mentioned in #5).
- Introduce a component(name) method on the components object. Given a component name it will give an object that has a url() method. This can be used to obtain the URL of a component directory, which is sometimes useful when client-side code needs to construct URLs itself, such as for templates. Fixes issue #8.
- You can register a renderer for a particular extension type using, for example, bower.renderer('.js', render_js), where render_js takes a URL and should return a string with a HTML snippet to include on the page.
- Even if the same resource is included multiple times, it will only be included once. Thanks Ying Zhong for the bug report and suggested fix.
- Initial public release.