yahoo/mojito — pull request #327 by drewfish (2012-07-30 05:39:09+00:00)
Title: redesigned resource store

Herein lies the new resource store.

## backward-compatibility changes
* Users will now need to configure the iphone selector by hand (`{"settings": ["device:iphone"], "selector":"iphone"}`) in their `application.json` files. (This resource store no longer assumes the selector is just the device.)
* In a mojit's `package.json`: the version check is now spelled `engines.mojito` instead of `yahoo.mojito.version`.
* In a mojit's `package.json`: `config.mojito` is now spelled `yahoo.mojito`.
* The second argument to `serializeClientStore()` is gone. (This was pretty much internal to mojito anyway, so likely no one will miss it.)

## issues fixed
* issue #10: Ensure Mojito can handle YUI module names with underscores
* issue #32: [mojito compile rollups] using dot notation in the name of the css files will make compile to discard some of them
* issue #50: mojito start loads tests from addons
* issue #54: "mojito compile inlinecss" has unexpected behavior when there is a css file name that contains the string "iphone"
* issue #59, bz 5380714: test files under addons/ac/ are loaded when mojito starts
* issue #95, bz 4647440: Proper Mojito version number comparison
* issue #109: Refactor certain complicated parts of the store
* issue #110: Detect duplicate resource ids on cookdown
* bz 4606483: Mojit specs can be within a spec.json file so they can be YCBed
* bz 4647169: considering making a utility YUI object in ResourceStore
* bz 5362206: Need ability to select controller, view, model and binder based on context
* bz 5495519: mojito is not loading - stuck retrieving all the datetype-date-format for each locale
* bz 5530096: Mojito tries to parse .json~ files in [mojit]/specs/
* bz 5541500: mojito not doing fallback
* bz 5609501: L10n: Root strings file is not used by default when a non-root strings file is present

## issues unblocked
* issue #37: i18n support for html5apps
* issue #78: Complete client resource store implementation
* issue #86: Real device detection
* bz 4805839: Custom archetypes
* bz 5450431: [json files granularity] how to include or synthetically define values for dimensions
* bz 5605173: {selector} is not defined or explained in the documentation

This passes yahoo-internal fork build 55, with the exception of one test. That test is broken, and should be updated once this is merged to develop. (The test is using `mojito start --context lang=de` which is used to set the default context. However, every request gets the lang set in the context, so that will override the default context specified on the command line.)