SproutCore 0.9.13 - “Baker’s Dozen” Release (was SproutCore 0.9.12)
Posted on July 1st, 2008
by charles
UPDATE: A late breaking bug in 0.9.12 was discovered this morning that prevented sc-build from functioning properly. It was fixed in a new release, 0.9.13. Everything below is the same for 0.9.13, just with an extra bug fix.
SproutCore 0.9.12 release just rolled with some fabulous bug fixes and new features. Here are the highlights:
- Finally, Windows Goes Final. The last two SproutCore gems have included experimental support for using the build tools on Windows. Experimental as in, did not work. In 0.9.12 the build tools are officially supported, as in, they finally work. At least on my Windows machine.
- Better Proxy Support. 0.9.11 included the debut of a new built-in proxy support which makes it uber-easy to test SproutCore with your favorite backend service. There were a few bugs however, with both posts and query parameters. These have both been fixed now. The proxy also handles both cookies and redirects better.
- sc_super(). SproutCore has always had built-in support for “calling super” in your JavaScript. The only problem was that to call your super’s method, you had to use an elaborate string “arguments.callee.base.apply…”. Now thanks to the build tools, you can call super with a nice shorthand: sc_super(). This is replaced at build time on the server so if you are debugging, you will still see the old-style call in your code.
- Combining Stylesheets & JavaScript in Dev Mode. In development mode, the build tools normally server your CSS and JavaScript as individual files. This makes it easier to debug and its faster for the page to reload. In some browsers, however, (notably IE), having more than 31 CSS files can break it. To solve this, you can use some new config options to have the build tools combine either your Stylesheets or JavaScript in development mode. You can also use this new option to turn minification on or off in production or dev modes. See the release notes below for more info.
- OpenSocial. Some folks are building SproutCore applications that work with OpenSocial, which is a really cool idea. This release adds a useful feature allowing you to @import stylesheets instead of using link tags if needed. If you are building an OpenSocial app or need this feature for some other reason, ask on the mailing list and someone it will be happy to help you out.
- Bug Fixes! A variety of bug fixes contributed by lots of different people. Full details are below.
Special thanks and congratulations to august, onitunes, maloninc, schwa32, juan, and Johannes Fahrenkrug who all had patches included in this release.
To get the update, just do:
sudo gem update sproutcore
SproutCore Build Tools 0.9.12 Release Notes
Build Tools
- Added :include_method = :link|:import option to the stylesheets_for_client helper. This allows you to select between inclusion using link tags vs @import (which is required for OpenSocial apps) - Thanks Johannes Fahrenkrug!
- Proxy now handles posts and rewrites Location headers so they stay in the same domain. Should make this feature far more robust.
- Proxy now handles query parameters.
- Build tools now replace all occurrences of “sc_super()” with a call to arguments.callee.base.apply(). This way you don’t have to remember the crazy-ass string to call super. (Thanks onitunes)
- You can now start sc-server down inside of a project and it will find the proper level to work at.
- Finally fixed all remaining known issues with using tools in Windows. Works for me in my install.
- sc-config.rb is now named sc-config. The old name will still work.
- sc-config now supports three extra options in the all config:
- :minify_javascript :: name one or more modes that you want the JavaScript to be minified in. Normally JS is minified in production mode, but you can use this to turn that behavior off if necessary for debugging.
- :combine_javascript :: name one or more modes that you want JavaScripts to be combined in. Normally JS is combined in production mode, but you can turn this on or off for mode as needed for debugging.
- :combine_stylesheets :: name one or more modes that you want stylesheets to be combined in. Normally CSS is combined in both production and development modes, but you can turn this on or off as needed.
- [FIX] Build tools were not appending a timestamp to resource URLs like they should in order to gaurantee clean caching.
Framework
- SC.ButtonView & SC.MenuItemView now removes and adds the ‘active’ class name on mouseExited and mouseEntered when the mouse is pressed to provide better indication of whether an action will occur on mouse up. (Thanks schwa23)
- SC.Record#toString now shows record type in description.
- [FIX] SC.Timer now computes the next fire time before it executes your callback action. This should avoid the situation where a timer would call your action, which would then take it past the last time it should fire and hence the last fire would never happen. (Thanks August)
- [FIX] SC.Record#matchCondition() did not behave correctly when comparing record instances. Fix by onitunes includes both a faster comparison method along with correct behavior + kickin’ unit tests
- [FIX] some settings on the inline editor for multi-line edits were wrong. Now fixed thanks to maloninc (#38)

Wonderful work, guys!
That’s the shortest time between submitting a patch (yesterday night) and having it included in a release (today) I’ve ever seen!
I’ll write a short OpenSocial SproutCore tutorial soon.
- Johannes
Good work guys. Your doing an amazing job
Hmm, how do we update our SproutCore again?