sproutcore 1.4.5-java → 1.5.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1916) hide show
  1. data/.rspec +1 -0
  2. data/CHANGELOG +126 -0
  3. data/README.txt +25 -0
  4. data/VERSION.yml +2 -2
  5. data/bin/sc-build +1 -1
  6. data/bin/sc-build-number +1 -1
  7. data/bin/sc-docs +1 -1
  8. data/bin/sc-gen +1 -1
  9. data/bin/sc-init +1 -1
  10. data/bin/sc-manifest +1 -1
  11. data/bin/sc-server +1 -1
  12. data/bin/sproutcore +1 -1
  13. data/lib/Buildfile +14 -5
  14. data/lib/buildtasks/build.rake +33 -17
  15. data/lib/buildtasks/manifest.rake +381 -103
  16. data/lib/buildtasks/target.rake +1 -0
  17. data/lib/doc_templates/sproutcore/index.tmpl +18 -4
  18. data/lib/doc_templates/sproutcore/publish.js +1 -1
  19. data/lib/frameworks/sproutcore/Buildfile +36 -33
  20. data/lib/frameworks/sproutcore/CHANGELOG.md +414 -0
  21. data/lib/frameworks/sproutcore/README.md +1 -0
  22. data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
  23. data/lib/frameworks/sproutcore/apps/test_controls/controllers/alert.js +39 -0
  24. data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +21 -0
  25. data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +125 -0
  26. data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +36 -0
  27. data/lib/frameworks/sproutcore/apps/test_controls/controllers/split.js +74 -0
  28. data/lib/frameworks/sproutcore/apps/test_controls/core.js +29 -0
  29. data/lib/frameworks/sproutcore/apps/test_controls/main.js +14 -0
  30. data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +158 -0
  31. data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +53 -0
  32. data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +85 -0
  33. data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +40 -0
  34. data/lib/frameworks/sproutcore/apps/test_controls/resources/loading.rhtml +9 -0
  35. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +60 -0
  36. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +151 -0
  37. data/lib/frameworks/sproutcore/apps/test_controls/resources/panels_page.js +62 -0
  38. data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +33 -0
  39. data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +55 -0
  40. data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +77 -0
  41. data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +99 -0
  42. data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +61 -0
  43. data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +54 -0
  44. data/lib/frameworks/sproutcore/apps/test_controls/resources/split_page.js +141 -0
  45. data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +50 -0
  46. data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +53 -0
  47. data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +65 -0
  48. data/lib/frameworks/sproutcore/apps/test_controls/theme.js +34 -0
  49. data/lib/frameworks/sproutcore/apps/tests/controllers/detail.js +1 -1
  50. data/lib/frameworks/sproutcore/apps/tests/controllers/source.js +1 -1
  51. data/lib/frameworks/sproutcore/apps/tests/controllers/target.js +1 -1
  52. data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
  53. data/lib/frameworks/sproutcore/apps/tests/controllers/tests.js +1 -1
  54. data/lib/frameworks/sproutcore/apps/tests/core.js +1 -1
  55. data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +6 -6
  56. data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +1 -1
  57. data/lib/frameworks/sproutcore/apps/tests/main.js +1 -1
  58. data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
  59. data/lib/frameworks/sproutcore/apps/tests/states/ready.js +1 -1
  60. data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
  61. data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
  62. data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
  63. data/lib/frameworks/sproutcore/apps/tests/states/ready_loading.js +1 -1
  64. data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
  65. data/lib/frameworks/sproutcore/apps/tests/states/start.js +1 -1
  66. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/detail.js +1 -1
  67. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/source.js +1 -1
  68. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/target.js +1 -1
  69. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +1 -1
  70. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +1 -1
  71. data/lib/frameworks/sproutcore/apps/tests/tests/models/target.js +1 -1
  72. data/lib/frameworks/sproutcore/apps/tests/tests/models/test.js +1 -1
  73. data/lib/frameworks/sproutcore/apps/tests/tests/views/offset_checkbox.js +1 -1
  74. data/lib/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +1 -1
  75. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +10 -4
  76. data/lib/frameworks/sproutcore/apps/welcome/core.js +1 -1
  77. data/lib/frameworks/sproutcore/apps/{greenhouse → welcome}/english.lproj/images/main-bg.png +0 -0
  78. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +24 -6
  79. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +37 -47
  80. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/strings.js +1 -1
  81. data/lib/frameworks/sproutcore/apps/welcome/main.js +1 -1
  82. data/lib/frameworks/sproutcore/apps/welcome/tests/controllers/targets.js +1 -1
  83. data/lib/frameworks/sproutcore/design/{SproutCore Datastore Design.graffle → Sproutcore_DatastoreDesign.graffle}/QuickLook/Preview.pdf +0 -0
  84. data/lib/frameworks/sproutcore/design/{SproutCore Datastore Design.graffle → Sproutcore_DatastoreDesign.graffle}/QuickLook/Thumbnail.tiff +0 -0
  85. data/lib/frameworks/sproutcore/design/{SproutCore Datastore Design.graffle → Sproutcore_DatastoreDesign.graffle}/data.plist +0 -0
  86. data/lib/frameworks/sproutcore/{apps/docs/design/Doc Viewer.graffle → design/Sproutcore_DatastoreDesign.graffle}/image8.png +0 -0
  87. data/lib/frameworks/sproutcore/design/{SproutCore Design Template.graffle → Sproutcore_Design_Template.graffle}/QuickLook/Preview.pdf +0 -0
  88. data/lib/frameworks/sproutcore/design/{SproutCore Design Template.graffle → Sproutcore_Design_Template.graffle}/QuickLook/Thumbnail.tiff +0 -0
  89. data/lib/frameworks/sproutcore/design/{SproutCore Design Template.graffle → Sproutcore_Design_Template.graffle}/data.plist +0 -0
  90. data/lib/frameworks/sproutcore/design/{SproutCore Datastore Design.graffle → Sproutcore_Design_Template.graffle}/image8.png +0 -0
  91. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/QuickLook/Preview.pdf +0 -0
  92. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/QuickLook/Thumbnail.tiff +0 -0
  93. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/data.plist +0 -0
  94. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image10.png +0 -0
  95. data/lib/frameworks/sproutcore/{apps/docs/design/Doc Viewer.graffle → design/TestRunner_Design.graffle}/image11.png +0 -0
  96. data/lib/frameworks/sproutcore/{apps/docs/design/Doc Viewer.graffle → design/TestRunner_Design.graffle}/image13.png +0 -0
  97. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image15.png +0 -0
  98. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image16.png +0 -0
  99. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image17.png +0 -0
  100. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image18.png +0 -0
  101. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image19.png +0 -0
  102. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image22.tiff +0 -0
  103. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image23.png +0 -0
  104. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image24.png +0 -0
  105. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image25.png +0 -0
  106. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image30.png +0 -0
  107. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image31.png +0 -0
  108. data/lib/frameworks/sproutcore/design/{SproutCore Design Template.graffle → TestRunner_Design.graffle}/image8.png +0 -0
  109. data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image9.png +0 -0
  110. data/lib/frameworks/sproutcore/frameworks/ajax/fixtures/file_exists.json +1 -0
  111. data/lib/frameworks/sproutcore/frameworks/ajax/fixtures/malformed.json +11 -0
  112. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +611 -0
  113. data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +550 -0
  114. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +276 -0
  115. data/lib/frameworks/sproutcore/frameworks/animation/core.js +57 -45
  116. data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +10 -5
  117. data/lib/frameworks/sproutcore/frameworks/bootstrap/core.js +1 -1
  118. data/lib/frameworks/sproutcore/frameworks/bootstrap/setup_body_class_names.js +1 -1
  119. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/bench.js +14 -0
  120. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +219 -23
  121. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +16 -15
  122. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +187 -0
  123. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +540 -0
  124. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +44 -0
  125. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +342 -0
  126. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +189 -0
  127. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/function.js +39 -0
  128. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars.js +73 -0
  129. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +293 -0
  130. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +55 -0
  131. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/localization.js +5 -0
  132. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/view.js +96 -0
  133. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +81 -0
  134. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +163 -0
  135. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +60 -0
  136. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +110 -0
  137. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +268 -0
  138. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +249 -0
  139. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +28 -0
  140. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +55 -0
  141. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +74 -0
  142. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +95 -0
  143. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +50 -0
  144. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +33 -0
  145. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +670 -0
  146. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +31 -0
  147. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +17 -0
  148. data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/observable_protocol.js +40 -0
  149. data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +131 -0
  150. data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/core.css +378 -0
  151. data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/view.css +57 -0
  152. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +33 -0
  153. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/bindable_span.js +164 -0
  154. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +36 -0
  155. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +202 -0
  156. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +141 -0
  157. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +131 -0
  158. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
  159. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +210 -0
  160. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +991 -0
  161. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +289 -0
  162. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/page.js +106 -0
  163. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +419 -0
  164. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +103 -0
  165. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +1063 -0
  166. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +124 -0
  167. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +2174 -0
  168. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +693 -0
  169. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +397 -0
  170. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +165 -0
  171. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +316 -0
  172. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +548 -0
  173. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +155 -0
  174. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +104 -0
  175. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +301 -0
  176. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/enum_case.js +206 -0
  177. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/null_case.js +64 -0
  178. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +344 -0
  179. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/single_case.js +136 -0
  180. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/empty_case.js +82 -0
  181. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/multiple_case.js +111 -0
  182. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_case.js +193 -0
  183. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_enumerable_case.js +265 -0
  184. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/responder_context.js +76 -0
  185. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +78 -0
  186. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/checkbox_support.js +38 -0
  187. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +79 -0
  188. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +20 -0
  189. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/builder.js +49 -0
  190. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/core_query/within.js +71 -0
  191. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +140 -0
  192. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/ready/done.js +40 -0
  193. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/begin.js +47 -0
  194. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/element.js +44 -0
  195. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +124 -0
  196. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/get.js +51 -0
  197. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_attr.js +50 -0
  198. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_basic.js +28 -0
  199. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +177 -0
  200. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +109 -0
  201. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/init.js +55 -0
  202. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/join.js +28 -0
  203. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/push_text.js +74 -0
  204. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/tag.js +46 -0
  205. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +219 -0
  206. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeKeyPane.js +124 -0
  207. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMainPane.js +68 -0
  208. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMenuPane.js +48 -0
  209. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/root_responder.js +108 -0
  210. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/targetForAction.js +288 -0
  211. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/add.js +92 -0
  212. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/copy.js +17 -0
  213. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/indexSetForSource.js +98 -0
  214. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/isEqual.js +60 -0
  215. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +111 -0
  216. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +201 -0
  217. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/theme.js +78 -0
  218. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invalidate.js +44 -0
  219. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invokeLater.js +209 -0
  220. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/isPaused.js +77 -0
  221. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/performAction.js +75 -0
  222. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/schedule.js +176 -0
  223. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/normalizeURL.js +24 -0
  224. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +284 -0
  225. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/rect.js +105 -0
  226. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +49 -0
  227. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +224 -0
  228. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +26 -0
  229. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/firstResponder.js +148 -0
  230. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/keyPane.js +133 -0
  231. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +31 -0
  232. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +206 -0
  233. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +201 -0
  234. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/core.js +160 -0
  235. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +919 -0
  236. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +382 -0
  237. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build.js +85 -0
  238. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +89 -0
  239. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +117 -0
  240. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +248 -0
  241. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertLayouts.js +153 -0
  242. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +132 -0
  243. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createLayer.js +97 -0
  244. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroyLayer.js +83 -0
  245. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +83 -0
  246. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/findLayerInParentLayer.js +50 -0
  247. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/init.js +50 -0
  248. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +217 -0
  249. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisible.js +85 -0
  250. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisibleInWindow.js +122 -0
  251. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +28 -0
  252. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +146 -0
  253. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +162 -0
  254. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +180 -0
  255. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +745 -0
  256. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/parentViewDidChange.js +67 -0
  257. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +203 -0
  258. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/removeChild.js +189 -0
  259. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +203 -0
  260. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render_delegate_support.js +163 -0
  261. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/replaceChild.js +29 -0
  262. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +28 -0
  263. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/theme.js +45 -0
  264. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayer.js +148 -0
  265. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +213 -0
  266. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view.js +64 -0
  267. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +202 -0
  268. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +131 -0
  269. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +242 -0
  270. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +1524 -0
  271. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +181 -0
  272. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/base.js +3 -0
  273. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +48 -0
  274. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +57 -0
  275. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +223 -0
  276. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +1115 -0
  277. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +624 -0
  278. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +401 -0
  279. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +400 -0
  280. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/touch.js +67 -0
  281. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +118 -0
  282. data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +1 -1
  283. data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +1 -1
  284. data/lib/frameworks/sproutcore/frameworks/core_tools/english.lproj/strings.js +1 -1
  285. data/lib/frameworks/sproutcore/frameworks/core_tools/fixtures/target.js +1 -1
  286. data/lib/frameworks/sproutcore/frameworks/core_tools/fixtures/test.js +1 -1
  287. data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +1 -1
  288. data/lib/frameworks/sproutcore/frameworks/core_tools/models/test.js +1 -1
  289. data/lib/frameworks/sproutcore/frameworks/datastore/core.js +1 -1
  290. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +17 -21
  291. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +322 -132
  292. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +5 -5
  293. data/lib/frameworks/sproutcore/frameworks/datastore/debug/json.js +1 -1
  294. data/lib/frameworks/sproutcore/frameworks/datastore/debug/standard_setup.js +1 -1
  295. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +44 -61
  296. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +16 -100
  297. data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +17 -24
  298. data/lib/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +8 -8
  299. data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +20 -21
  300. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +457 -216
  301. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +204 -94
  302. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +17 -19
  303. data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +150 -115
  304. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +148 -110
  305. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +51 -26
  306. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +160 -158
  307. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +298 -204
  308. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +419 -233
  309. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/cascade.js +1 -1
  310. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +7 -2
  311. data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +1 -1
  312. data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/cyclical_relationship.js +2 -2
  313. data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/mail_model.js +1 -1
  314. data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/test_runner_model.js +1 -1
  315. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/datetime_recordattribute.js +1 -1
  316. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
  317. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +180 -0
  318. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +56 -18
  319. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +36 -10
  320. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +11 -11
  321. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +8 -8
  322. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +1 -1
  323. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
  324. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/error_methods.js +1 -1
  325. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +26 -4
  326. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +1 -1
  327. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +2 -2
  328. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +1 -1
  329. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +1 -1
  330. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +1 -1
  331. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
  332. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +1 -1
  333. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +1 -1
  334. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +1 -1
  335. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +5 -3
  336. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +5 -1
  337. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/core_methods.js +1 -1
  338. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +1 -1
  339. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +5 -2
  340. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
  341. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +1 -1
  342. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +1 -1
  343. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +1 -1
  344. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +22 -22
  345. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +1 -1
  346. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/contains.js +1 -1
  347. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/containsRecordTypes.js +1 -1
  348. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/copy.js +1 -1
  349. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +1 -1
  350. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation_of_records.js +39 -14
  351. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/expandedRecordTypes.js +1 -1
  352. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +14 -6
  353. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/queryWithScope.js +1 -1
  354. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/record_type_is.js +5 -1
  355. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_comparisons.js +5 -1
  356. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_query_extensions.js +5 -1
  357. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
  358. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/error_methods.js +1 -1
  359. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +89 -53
  360. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
  361. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +5 -1
  362. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +11 -1
  363. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/core_methods.js +1 -1
  364. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +6 -2
  365. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +1 -1
  366. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +1 -1
  367. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +6 -2
  368. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/error_methods.js +1 -1
  369. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +1 -1
  370. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/init.js +1 -1
  371. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecord.js +64 -0
  372. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecords.js +100 -0
  373. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +1 -1
  374. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
  375. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readEditableDataHash.js +1 -1
  376. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +39 -36
  377. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +1 -1
  378. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +17 -1
  379. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/unloadRecord.js +55 -0
  380. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/unloadRecords.js +85 -32
  381. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +1 -1
  382. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +1103 -0
  383. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +390 -0
  384. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +14 -0
  385. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +91 -0
  386. data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
  387. data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +10 -11
  388. data/lib/frameworks/sproutcore/frameworks/desktop/core.js +19 -3
  389. data/lib/frameworks/sproutcore/frameworks/desktop/debug/drag.js +8 -7
  390. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +0 -1
  391. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +0 -27
  392. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +27 -3
  393. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +1 -9
  394. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +72 -74
  395. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +49 -27
  396. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +63 -46
  397. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +6 -3
  398. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +53 -17
  399. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +84 -79
  400. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +138 -0
  401. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +38 -24
  402. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +396 -218
  403. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +92 -123
  404. data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +23 -18
  405. data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +39 -17
  406. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +66 -53
  407. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +364 -121
  408. data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +209 -108
  409. data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +40 -17
  410. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +16 -12
  411. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +25 -27
  412. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +36 -24
  413. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +7 -5
  414. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +112 -0
  415. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +98 -0
  416. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +25 -0
  417. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +59 -0
  418. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/helpers/slicing.js +35 -0
  419. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +51 -0
  420. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +29 -0
  421. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +60 -0
  422. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +28 -0
  423. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +44 -0
  424. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +21 -0
  425. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +100 -0
  426. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +84 -0
  427. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +116 -0
  428. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +58 -0
  429. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +80 -0
  430. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +81 -0
  431. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/source_list.js +8 -0
  432. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +18 -0
  433. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +17 -0
  434. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +18 -0
  435. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +197 -103
  436. data/lib/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +7 -5
  437. data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +74 -37
  438. data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +26 -5
  439. data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +16 -6
  440. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +1 -1
  441. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +190 -22
  442. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +2 -1
  443. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +69 -9
  444. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +1 -1
  445. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +2 -2
  446. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/pane_page.js +4 -3
  447. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +1 -1
  448. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +30 -1
  449. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +91 -3
  450. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +9 -3
  451. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/methods.js +1 -1
  452. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/ui.js +11 -3
  453. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/methods.js +1 -1
  454. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +4 -2
  455. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +189 -0
  456. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/displayProperties.js +89 -0
  457. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/keyEquivalents.js +57 -0
  458. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +46 -4
  459. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +91 -18
  460. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +16 -32
  461. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +29 -3
  462. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +1 -1
  463. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/deleteSelection.js +1 -1
  464. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/deselect.js +1 -1
  465. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/displayProperties.js +1 -1
  466. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +1 -1
  467. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/layerIdFor.js +1 -1
  468. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/length.js +1 -1
  469. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +27 -5
  470. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/nowShowing.js +1 -1
  471. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
  472. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/select.js +1 -1
  473. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectNextItem.js +1 -1
  474. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +1 -1
  475. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selection.js +1 -1
  476. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +16 -10
  477. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +1 -1
  478. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +2 -2
  479. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +1 -1
  480. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +40 -2
  481. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +1 -1
  482. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/ui.js +1 -1
  483. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +52 -0
  484. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/render.js +1 -1
  485. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +1 -1
  486. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +1 -1
  487. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowOffsetForContentIndex.js +1 -1
  488. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js +1 -1
  489. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +1 -1
  490. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +1 -1
  491. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +5 -1
  492. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +129 -21
  493. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/methods.js +1 -1
  494. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +1 -1
  495. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +1 -1
  496. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +174 -43
  497. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +1 -1
  498. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +93 -8
  499. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +50 -0
  500. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +1 -1
  501. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +14 -2
  502. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +29 -1
  503. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +26 -83
  504. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +292 -61
  505. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/methods.js +1 -1
  506. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +11 -3
  507. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +32 -1
  508. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +78 -8
  509. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +11 -4
  510. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/methods.js +1 -1
  511. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/ui.js +1 -1
  512. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +1 -1
  513. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +11 -4
  514. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +16 -9
  515. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/static_content.js +1 -1
  516. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +1 -1
  517. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +33 -29
  518. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/method.js +33 -0
  519. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +29 -0
  520. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/methods.js +1 -1
  521. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +1 -1
  522. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/well/ui.js +1 -1
  523. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +550 -231
  524. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +63 -55
  525. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +286 -187
  526. data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +77 -53
  527. data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +39 -31
  528. data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +148 -0
  529. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +43 -7
  530. data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +82 -0
  531. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +58 -36
  532. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +668 -509
  533. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +313 -0
  534. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +93 -54
  535. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +152 -38
  536. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation.js +261 -0
  537. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation_bar.js +191 -0
  538. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +35 -30
  539. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +131 -122
  540. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +208 -208
  541. data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +24 -17
  542. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +332 -135
  543. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +184 -73
  544. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +193 -0
  545. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +829 -426
  546. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +377 -143
  547. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +96 -37
  548. data/lib/frameworks/sproutcore/frameworks/desktop/views/separator.js +26 -10
  549. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +52 -39
  550. data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list.js +19 -5
  551. data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +15 -8
  552. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +387 -271
  553. data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +10 -9
  554. data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +15 -4
  555. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +18 -4
  556. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +114 -12
  557. data/lib/frameworks/sproutcore/frameworks/desktop/views/thumb.js +14 -2
  558. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +103 -14
  559. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +36 -20
  560. data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +27 -31
  561. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +285 -0
  562. data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
  563. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +6 -0
  564. data/lib/frameworks/sproutcore/frameworks/experimental/README.md +23 -0
  565. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/README +18 -0
  566. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/TODO +56 -0
  567. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/beautify.js +0 -0
  568. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/design.js +0 -0
  569. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/file.js +35 -0
  570. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/files.js +0 -0
  571. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/layout.js +0 -0
  572. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +194 -0
  573. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/page.js +0 -0
  574. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/property.js +0 -0
  575. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/property_editor.js +0 -0
  576. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/target.js +0 -0
  577. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/targets.js +0 -0
  578. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/view_configs.js +0 -0
  579. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/core.js +65 -0
  580. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/core_file.js +124 -0
  581. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/data_source.js +250 -0
  582. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/app_page.js +399 -0
  583. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/app-selector.css +107 -0
  584. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/button.css +314 -0
  585. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/dock.css +90 -0
  586. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/general.css +51 -0
  587. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/main-page.css +93 -0
  588. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/menu.css +49 -0
  589. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/modal.css +41 -0
  590. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/picker.css +195 -0
  591. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/search.css +0 -0
  592. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/text-field.css +0 -0
  593. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/dialogs.js +303 -0
  594. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.eot +0 -0
  595. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.otf +0 -0
  596. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.woff +0 -0
  597. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.eot +0 -0
  598. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.otf +0 -0
  599. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.woff +0 -0
  600. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/app-selector/choose-app.png +0 -0
  601. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/app-selector/list-item-sel.png +0 -0
  602. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-l.png +0 -0
  603. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-m.png +0 -0
  604. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-r.png +0 -0
  605. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-l.png +0 -0
  606. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-m.png +0 -0
  607. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-r.png +0 -0
  608. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/active-l.png +0 -0
  609. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/active-r.png +0 -0
  610. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-l.png +0 -0
  611. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-r.png +0 -0
  612. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/regular-l.png +0 -0
  613. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/regular-r.png +0 -0
  614. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-l.png +0 -0
  615. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-r.png +0 -0
  616. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-l.png +0 -0
  617. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-r.png +0 -0
  618. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-l.png +0 -0
  619. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-r.png +0 -0
  620. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-l.png +0 -0
  621. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-m.png +0 -0
  622. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-r.png +0 -0
  623. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-l.png +0 -0
  624. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-r.png +0 -0
  625. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-l.png +0 -0
  626. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-r.png +0 -0
  627. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-l.png +0 -0
  628. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-r.png +0 -0
  629. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-l.png +0 -0
  630. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-r.png +0 -0
  631. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-l.png +0 -0
  632. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-m.png +0 -0
  633. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-r.png +0 -0
  634. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-l.png +0 -0
  635. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-m.png +0 -0
  636. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-r.png +0 -0
  637. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-l.png +0 -0
  638. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-m.png +0 -0
  639. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-r.png +0 -0
  640. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-l.png +0 -0
  641. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-m.png +0 -0
  642. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-r.png +0 -0
  643. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-l.png +0 -0
  644. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-m.png +0 -0
  645. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-r.png +0 -0
  646. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/active-m.png +0 -0
  647. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/disabled-m.png +0 -0
  648. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/regular-m.png +0 -0
  649. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-active-m.png +0 -0
  650. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-disabled-m.png +0 -0
  651. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-m.png +0 -0
  652. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/active-l.png +0 -0
  653. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/active-r.png +0 -0
  654. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/disabled-l.png +0 -0
  655. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/disabled-r.png +0 -0
  656. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/regular-l.png +0 -0
  657. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/regular-r.png +0 -0
  658. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-active-l.png +0 -0
  659. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-active-r.png +0 -0
  660. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-l.png +0 -0
  661. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-r.png +0 -0
  662. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-l.png +0 -0
  663. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-r.png +0 -0
  664. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/actions-active.png +0 -0
  665. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/actions.png +0 -0
  666. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/inspector-active.png +0 -0
  667. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/inspector.png +0 -0
  668. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/library-active.png +0 -0
  669. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/library.png +0 -0
  670. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/projects-active.png +0 -0
  671. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/projects.png +0 -0
  672. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/run-active.png +0 -0
  673. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/run.png +0 -0
  674. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/save-active.png +0 -0
  675. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/save.png +0 -0
  676. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/greenhouse-l.png +0 -0
  677. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/greenhouse-s.png +0 -0
  678. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/sproutcore.png +0 -0
  679. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/apps/greenhouse}/english.lproj/images/main-bg.png +0 -0
  680. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom-left.png +0 -0
  681. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom-right.png +0 -0
  682. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom.png +0 -0
  683. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/close-active.png +0 -0
  684. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/close.png +0 -0
  685. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/left.png +0 -0
  686. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-bottom.png +0 -0
  687. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-left.png +0 -0
  688. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-right.png +0 -0
  689. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-top.png +0 -0
  690. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/right.png +0 -0
  691. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/search-active.png +0 -0
  692. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/search.png +0 -0
  693. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top-left.png +0 -0
  694. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top-right.png +0 -0
  695. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top.png +0 -0
  696. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/toolbar-bg.png +0 -0
  697. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/inspectors.js +365 -0
  698. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/loading.rhtml +0 -0
  699. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/main_page.js +0 -0
  700. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/strings.js +93 -0
  701. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/fixtures/file.js +0 -0
  702. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/main.js +28 -0
  703. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/mixins/drop_down.js +0 -0
  704. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/models/design.js +26 -0
  705. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/models/dir.js +93 -0
  706. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/models/file.js +51 -0
  707. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/target.js +0 -0
  708. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/view_config.js +0 -0
  709. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/resources/test_page.js +0 -0
  710. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/inspector.js +152 -0
  711. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/library.js +142 -0
  712. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/main.js +283 -0
  713. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/modals.js +299 -0
  714. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +235 -0
  715. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/design.js +0 -0
  716. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/designs.js +0 -0
  717. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/file.js +0 -0
  718. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/files.js +0 -0
  719. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/models/file.js +0 -0
  720. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/models/view_config.js +0 -0
  721. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/tests/views/list_item.js +16 -0
  722. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/tests/views/plist_item.js +20 -0
  723. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/theme.js +25 -0
  724. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/anchor.js +0 -0
  725. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/application_list_item.js +0 -0
  726. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/event_blocker.js +0 -0
  727. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/label_designer.js +0 -0
  728. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/list_item.js +0 -0
  729. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +178 -0
  730. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/simple_button.js +0 -0
  731. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/tear_off_picker.js +56 -0
  732. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/web.js +0 -0
  733. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/coders/design.js +22 -0
  734. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/coders/object.js +349 -0
  735. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/controllers.js +23 -0
  736. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/design.js +43 -0
  737. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/designs.js +139 -0
  738. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +172 -0
  739. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_files.js +28 -0
  740. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/core.js +28 -0
  741. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_rule.js +22 -0
  742. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style.js +29 -0
  743. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +201 -0
  744. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/button.js +23 -0
  745. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/label.js +18 -0
  746. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +298 -0
  747. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/tab.js +20 -0
  748. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/text_field.js +17 -0
  749. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +1269 -0
  750. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/css/designer.css +0 -0
  751. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/english.lproj/design_page.js +55 -0
  752. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/high_light.css +0 -0
  753. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/controller.png +0 -0
  754. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-bg.png +0 -0
  755. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-bg.png +0 -0
  756. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-divider.png +0 -0
  757. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-sel-bg.png +0 -0
  758. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-sel-divider.png +0 -0
  759. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/english.lproj/images/main-bg.png +0 -0
  760. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/page.png +0 -0
  761. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/pane.png +0 -0
  762. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/view.png +0 -0
  763. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/selection_handles.css +0 -0
  764. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/binding.js +39 -0
  765. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/object.js +28 -0
  766. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/page.js +60 -0
  767. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/view.js +29 -0
  768. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/button.js +13 -0
  769. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +227 -0
  770. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/tests/coders/page.js +54 -0
  771. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/tests/designers/view_designer.js +47 -0
  772. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +144 -0
  773. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +219 -0
  774. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/high_light.js +0 -0
  775. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/page_item_view.js +0 -0
  776. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/selection_handles.js +78 -0
  777. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/README.md +11 -0
  778. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +215 -0
  779. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +67 -0
  780. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +46 -0
  781. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +112 -0
  782. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/many.js +79 -0
  783. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +76 -0
  784. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/single.js +67 -0
  785. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +229 -0
  786. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +236 -0
  787. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split.js +18 -0
  788. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split_divider.js +26 -0
  789. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +100 -0
  790. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/dividers.js +243 -0
  791. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +294 -0
  792. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_child.js +135 -0
  793. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +160 -0
  794. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +929 -0
  795. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split_divider.js +40 -0
  796. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +26 -0
  797. data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/default_styles.css +5 -0
  798. data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/strings.js +15 -0
  799. data/lib/frameworks/sproutcore/frameworks/forms/mixins/edit_mode.js +48 -0
  800. data/lib/frameworks/sproutcore/frameworks/forms/mixins/emptiness.js +94 -0
  801. data/lib/frameworks/sproutcore/frameworks/forms/render_delegates/form.js +21 -0
  802. data/lib/frameworks/sproutcore/frameworks/forms/render_delegates/form_row.js +20 -0
  803. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form.js +17 -0
  804. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_checkbox_field.js +17 -0
  805. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_field.js +17 -0
  806. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_label.js +17 -0
  807. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_radio_field.js +17 -0
  808. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_row.js +17 -0
  809. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_text_field.js +17 -0
  810. data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +286 -0
  811. data/lib/frameworks/sproutcore/frameworks/forms/views/form_row.js +187 -0
  812. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +52 -43
  813. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +15 -142
  814. data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +29 -21
  815. data/lib/frameworks/sproutcore/frameworks/foundation/delegates/inline_text_field.js +90 -0
  816. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/benchmark.css +146 -0
  817. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +4 -16
  818. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/checkbox_view.css +5 -0
  819. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
  820. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore.png +0 -0
  821. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +5 -0
  822. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/radio_view.css +7 -0
  823. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +4 -6
  824. data/lib/frameworks/sproutcore/frameworks/foundation/ext/string.js +89 -0
  825. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/pinch.js +119 -0
  826. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/swipe.js +234 -0
  827. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/tap.js +157 -0
  828. data/lib/frameworks/sproutcore/frameworks/foundation/license.js +24 -26
  829. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +41 -0
  830. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +355 -0
  831. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +4 -350
  832. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +10 -8
  833. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +8 -9
  834. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +227 -0
  835. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +105 -200
  836. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +16 -15
  837. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +745 -0
  838. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +214 -0
  839. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +254 -0
  840. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +188 -0
  841. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +195 -0
  842. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +194 -0
  843. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +20 -21
  844. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/tree_item_content.js +57 -53
  845. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +18 -9
  846. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +214 -203
  847. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +110 -0
  848. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/container.js +18 -0
  849. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +174 -0
  850. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +99 -0
  851. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +119 -0
  852. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +386 -0
  853. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +404 -191
  854. data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +65 -0
  855. data/lib/frameworks/sproutcore/frameworks/foundation/system/cookie.js +176 -0
  856. data/lib/frameworks/sproutcore/frameworks/foundation/system/core_query.js +20 -2006
  857. data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +9 -3
  858. data/lib/frameworks/sproutcore/frameworks/foundation/system/gesture.js +363 -0
  859. data/lib/frameworks/sproutcore/frameworks/foundation/system/image_queue.js +433 -0
  860. data/lib/frameworks/sproutcore/frameworks/foundation/system/math.js +1 -1
  861. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +591 -0
  862. data/lib/frameworks/sproutcore/frameworks/foundation/system/routes.js +123 -24
  863. data/lib/frameworks/sproutcore/frameworks/foundation/system/string.js +422 -0
  864. data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +19 -16
  865. data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
  866. data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +91 -96
  867. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +87 -0
  868. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +157 -0
  869. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/range.js +71 -0
  870. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +254 -0
  871. data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +5 -5
  872. data/lib/frameworks/sproutcore/frameworks/foundation/tasks/task.js +1 -1
  873. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/outline_case.js +1 -1
  874. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +1 -1
  875. data/lib/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/methods.js +1 -1
  876. data/lib/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/ui.js +1 -1
  877. data/lib/frameworks/sproutcore/frameworks/foundation/tests/delegates/inline_text_field/inline_text_field.js +150 -0
  878. data/lib/frameworks/sproutcore/frameworks/foundation/tests/integration/creating_views.js +9 -4
  879. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_display.js +6 -0
  880. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +168 -0
  881. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +1 -1
  882. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +44 -0
  883. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +194 -0
  884. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +150 -0
  885. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +151 -0
  886. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +114 -0
  887. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +151 -0
  888. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +152 -0
  889. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/api.js +1 -1
  890. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +13 -22
  891. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +64 -0
  892. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +8 -1
  893. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/validatable/ui.js +1 -1
  894. data/lib/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/flat_case.js +59 -59
  895. data/lib/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/group_case.js +114 -114
  896. data/lib/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/outline_case.js +74 -74
  897. data/lib/frameworks/sproutcore/frameworks/foundation/tests/render_delegates/render_delegate.js +78 -0
  898. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/cookie.js +182 -0
  899. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +19 -3
  900. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/math.js +1 -1
  901. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +30 -20
  902. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/string.js +34 -0
  903. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/task_queue.js +8 -2
  904. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +6 -0
  905. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +241 -0
  906. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/range.js +6 -0
  907. data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/credit_card.js +6 -0
  908. data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +11 -13
  909. data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/not_empty.js +1 -1
  910. data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/number.js +6 -0
  911. data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/password.js +6 -0
  912. data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/validator.js +6 -0
  913. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +10 -2
  914. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +76 -11
  915. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +499 -46
  916. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +32 -7
  917. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +1 -1
  918. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/nextValidKeyView.js +110 -0
  919. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +87 -3
  920. data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +2 -2
  921. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +39 -12
  922. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +2 -2
  923. data/lib/frameworks/sproutcore/frameworks/foundation/validators/email.js +2 -2
  924. data/lib/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +6 -10
  925. data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +3 -2
  926. data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +2 -2
  927. data/lib/frameworks/sproutcore/frameworks/foundation/validators/positive_integer.js +3 -2
  928. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +5 -3
  929. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +16 -14
  930. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +23 -6
  931. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +307 -105
  932. data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +654 -0
  933. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +81 -195
  934. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +287 -116
  935. data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1435 -0
  936. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +390 -0
  937. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +210 -0
  938. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +12 -0
  939. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +7179 -0
  940. data/lib/frameworks/sproutcore/frameworks/jquery/tests/set_class.js +40 -0
  941. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +10 -8
  942. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +4 -6
  943. data/lib/frameworks/sproutcore/frameworks/media/views/media_slider.js +1 -1
  944. data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +3 -3
  945. data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +4 -5
  946. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +7 -7
  947. data/lib/frameworks/sproutcore/frameworks/mini/license.js +30 -28
  948. data/lib/frameworks/sproutcore/frameworks/qunit/README.md +24 -0
  949. data/lib/frameworks/sproutcore/frameworks/qunit/package.json +21 -0
  950. data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.css +215 -0
  951. data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +1442 -0
  952. data/lib/frameworks/sproutcore/frameworks/qunit/test/headless.html +24 -0
  953. data/lib/frameworks/sproutcore/frameworks/qunit/test/index.html +18 -0
  954. data/lib/frameworks/sproutcore/frameworks/qunit/test/logs.html +17 -0
  955. data/lib/frameworks/sproutcore/frameworks/qunit/test/logs.js +150 -0
  956. data/lib/frameworks/sproutcore/frameworks/qunit/test/same.js +1421 -0
  957. data/lib/frameworks/sproutcore/frameworks/qunit/test/test.js +314 -0
  958. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +232 -537
  959. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array.js +14 -0
  960. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +163 -4
  961. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/indexOf.js +1 -1
  962. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/insertAt.js +1 -1
  963. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/objectAt.js +1 -1
  964. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/popObject.js +1 -1
  965. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/pushObject.js +1 -1
  966. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/rangeObserver.js +74 -74
  967. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/removeAt.js +1 -1
  968. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/removeObject.js +1 -1
  969. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +1 -1
  970. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/shiftObject.js +1 -1
  971. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/unshiftObject.js +1 -1
  972. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +92 -0
  973. data/lib/frameworks/sproutcore/frameworks/runtime/ext/date.js +15 -0
  974. data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +189 -0
  975. data/lib/frameworks/sproutcore/frameworks/runtime/ext/string.js +31 -0
  976. data/lib/frameworks/sproutcore/frameworks/runtime/license.js +29 -28
  977. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +577 -317
  978. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +16 -13
  979. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +25 -18
  980. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +351 -308
  981. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +51 -52
  982. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1149 -1001
  983. data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +85 -45
  984. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +61 -55
  985. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +51 -107
  986. data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +195 -0
  987. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +361 -348
  988. data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +24 -24
  989. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +45 -40
  990. data/lib/frameworks/sproutcore/frameworks/runtime/system/function.js +76 -0
  991. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +275 -265
  992. data/lib/frameworks/sproutcore/frameworks/runtime/system/json.js +515 -0
  993. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +1337 -204
  994. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +312 -259
  995. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +89 -87
  996. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +119 -106
  997. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +107 -101
  998. data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +60 -0
  999. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +23 -47
  1000. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/beget.js +6 -0
  1001. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +1 -1
  1002. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/compare.js +1 -1
  1003. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/console.js +5 -0
  1004. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +59 -126
  1005. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/inspect.js +6 -0
  1006. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +21 -19
  1007. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +71 -33
  1008. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +6 -0
  1009. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +21 -1
  1010. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +6 -0
  1011. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +6 -0
  1012. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +39 -15
  1013. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/comparable.js +1 -1
  1014. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable.js +623 -0
  1015. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable_observers.js +81 -0
  1016. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +44 -0
  1017. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +286 -98
  1018. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observersForKey.js +36 -0
  1019. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +7 -1
  1020. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +78 -2
  1021. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +7 -1
  1022. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +1 -1
  1023. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +87 -8
  1024. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/error.js +6 -0
  1025. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +1 -1
  1026. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/addEach.js +1 -1
  1027. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/clone.js +1 -1
  1028. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/contains.js +1 -1
  1029. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/create.js +1 -1
  1030. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/indexAfter.js +1 -1
  1031. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/indexBefore.js +1 -1
  1032. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/intersects.js +1 -1
  1033. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/max.js +1 -1
  1034. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/min.js +1 -1
  1035. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +1 -1
  1036. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +1 -1
  1037. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/removeEach.js +1 -1
  1038. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/without.js +1 -1
  1039. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/json.js +21 -0
  1040. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +180 -92
  1041. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +6 -0
  1042. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +11 -0
  1043. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/concatenated_properties.js +77 -0
  1044. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +196 -0
  1045. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +56 -0
  1046. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +12 -12
  1047. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/destroy.js +1 -1
  1048. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/objectPropertyDidChange.js +1 -1
  1049. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/rangeDidChange.js +1 -1
  1050. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/update.js +1 -1
  1051. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +6 -0
  1052. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +77 -45
  1053. data/lib/frameworks/sproutcore/frameworks/statechart/core.js +4 -10
  1054. data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +155 -0
  1055. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +1241 -97
  1056. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +1617 -0
  1057. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/advanced/respond_to_event.js +401 -0
  1058. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/advanced/without_concurrent_states.js +306 -0
  1059. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +183 -0
  1060. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/without_concurrent_states.js +122 -0
  1061. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/pane.js +89 -0
  1062. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +109 -0
  1063. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/root_responder.js +74 -0
  1064. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/initial_substate.js +67 -0
  1065. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/is_current_state.js +60 -0
  1066. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/namespacing.js +248 -0
  1067. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/plugin/mixin.js +68 -0
  1068. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/plugin/nesting.js +95 -0
  1069. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/state_observes.js +235 -0
  1070. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/core.js +94 -0
  1071. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/with_concurrent_states.js +123 -0
  1072. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/without_concurrent_states.js +191 -0
  1073. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/initial_substate/core.js +48 -0
  1074. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/initial_substate/without_concurrent_states.js +218 -0
  1075. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/with_concurrent_states.js +88 -0
  1076. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +191 -0
  1077. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/core.js +200 -0
  1078. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/advanced.js +239 -0
  1079. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/basic.js +131 -0
  1080. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/intermediate.js +120 -0
  1081. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/context.js +144 -0
  1082. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +281 -0
  1083. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/transient/without_concurrent_states.js +162 -0
  1084. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/create/assigned_root_state.js +76 -0
  1085. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/create/unassigned_root_state.js +162 -0
  1086. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/destroy.js +73 -0
  1087. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/invoke_state_method.js +241 -0
  1088. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/owner.js +236 -0
  1089. data/lib/frameworks/sproutcore/frameworks/table/mixins/table_delegate.js +1 -1
  1090. data/lib/frameworks/sproutcore/frameworks/table/system/table_column.js +1 -1
  1091. data/lib/frameworks/sproutcore/frameworks/table/views/table.js +6 -5
  1092. data/lib/frameworks/sproutcore/frameworks/table/views/table_cell.js +3 -2
  1093. data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +2 -2
  1094. data/lib/frameworks/sproutcore/frameworks/table/views/table_header.js +6 -4
  1095. data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +2 -2
  1096. data/lib/frameworks/sproutcore/frameworks/testing/core.js +4 -1
  1097. data/lib/frameworks/sproutcore/frameworks/testing/extras.js +1 -1
  1098. data/lib/frameworks/sproutcore/frameworks/testing/system/dump.js +1 -1
  1099. data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
  1100. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +32 -19
  1101. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +13 -3
  1102. data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +1 -1
  1103. data/lib/frameworks/sproutcore/frameworks/testing/utils.js +1 -1
  1104. data/lib/frameworks/sproutcore/lib/index.rhtml +54 -9
  1105. data/lib/frameworks/sproutcore/license.js +32 -30
  1106. data/lib/frameworks/sproutcore/themes/ace/designs/dark.png +0 -0
  1107. data/lib/frameworks/sproutcore/themes/ace/designs/dark.psd +0 -0
  1108. data/lib/frameworks/sproutcore/themes/ace/designs/light.png +0 -0
  1109. data/lib/frameworks/sproutcore/themes/ace/designs/light.psd +0 -0
  1110. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/active_button.psd +0 -0
  1111. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/normal_button.psd +0 -0
  1112. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_active_button.psd +0 -0
  1113. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_button.psd +0 -0
  1114. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button.psd +0 -0
  1115. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_capsule.psd +0 -0
  1116. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_pointer.psd +0 -0
  1117. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button.psd +0 -0
  1118. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_capsule.psd +0 -0
  1119. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_pointer.psd +0 -0
  1120. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button.psd +0 -0
  1121. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_capsule.psd +0 -0
  1122. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_pointer.psd +0 -0
  1123. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button.psd +0 -0
  1124. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_capsule.psd +0 -0
  1125. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_pointer.psd +0 -0
  1126. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button.psd +0 -0
  1127. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button_pointer.psd +0 -0
  1128. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button.psd +0 -0
  1129. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button_pointer.psd +0 -0
  1130. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button.psd +0 -0
  1131. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button_pointer.psd +0 -0
  1132. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button.psd +0 -0
  1133. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button_pointer.psd +0 -0
  1134. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/active_button.psd +0 -0
  1135. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/normal_button.psd +0 -0
  1136. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_active_button.psd +0 -0
  1137. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_button.psd +0 -0
  1138. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button.psd +0 -0
  1139. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_capsule.psd +0 -0
  1140. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_pointer.psd +0 -0
  1141. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button.psd +0 -0
  1142. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_capsule.psd +0 -0
  1143. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_pointer.psd +0 -0
  1144. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button.psd +0 -0
  1145. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_capsule.psd +0 -0
  1146. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_pointer.psd +0 -0
  1147. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button.psd +0 -0
  1148. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_capsule.psd +0 -0
  1149. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_pointer.psd +0 -0
  1150. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button.psd +0 -0
  1151. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button_pointer.psd +0 -0
  1152. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button.psd +0 -0
  1153. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button_pointer.psd +0 -0
  1154. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button.psd +0 -0
  1155. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button_pointer.psd +0 -0
  1156. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button.psd +0 -0
  1157. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button_pointer.psd +0 -0
  1158. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/active_select.psd +0 -0
  1159. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/normal_select.psd +0 -0
  1160. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
  1161. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
  1162. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
  1163. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
  1164. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
  1165. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
  1166. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
  1167. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
  1168. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
  1169. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
  1170. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
  1171. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
  1172. data/lib/frameworks/sproutcore/themes/ace/designs/psds/collection/source-list/selection.psd +0 -0
  1173. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed.psd +0 -0
  1174. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed_active.psd +0 -0
  1175. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open.psd +0 -0
  1176. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open_active.psd +0 -0
  1177. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark.psd +0 -0
  1178. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark_active.psd +0 -0
  1179. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/down.psd +0 -0
  1180. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu.psd +0 -0
  1181. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
  1182. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/up.psd +0 -0
  1183. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/panel.psd +0 -0
  1184. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/pointers.psd +0 -0
  1185. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover.psd +0 -0
  1186. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_empty.psd +0 -0
  1187. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_notoolbar.psd +0 -0
  1188. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers.psd +0 -0
  1189. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers_notoolbar.psd +0 -0
  1190. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_content.psd +0 -0
  1191. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_indeterminate_content.psd +0 -0
  1192. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_track.psd +0 -0
  1193. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_active.psd +0 -0
  1194. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed.psd +0 -0
  1195. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed_active.psd +0 -0
  1196. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected.psd +0 -0
  1197. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected_active.psd +0 -0
  1198. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_unselected.psd +0 -0
  1199. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/thumb.psd +0 -0
  1200. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows.psd +0 -0
  1201. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows_active.psd +0 -0
  1202. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/thumb.psd +0 -0
  1203. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows.psd +0 -0
  1204. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows_active.psd +0 -0
  1205. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_active.psd +0 -0
  1206. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_normal.psd +0 -0
  1207. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected.psd +0 -0
  1208. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected_active.psd +0 -0
  1209. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_active.psd +0 -0
  1210. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_normal.psd +0 -0
  1211. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected.psd +0 -0
  1212. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected_active.psd +0 -0
  1213. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_active.psd +0 -0
  1214. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_normal.psd +0 -0
  1215. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected.psd +0 -0
  1216. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected_active.psd +0 -0
  1217. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_active.psd +0 -0
  1218. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_normal.psd +0 -0
  1219. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected.psd +0 -0
  1220. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected_active.psd +0 -0
  1221. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob.psd +0 -0
  1222. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob_active.psd +0 -0
  1223. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob.psd +0 -0
  1224. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob_active.psd +0 -0
  1225. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob.psd +0 -0
  1226. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob_active.psd +0 -0
  1227. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/track.psd +0 -0
  1228. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/track.psd +0 -0
  1229. data/lib/frameworks/sproutcore/themes/ace/designs/psds/toolbar/toolbar.psd +0 -0
  1230. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch.psd +0 -0
  1231. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.png +0 -0
  1232. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.psd +0 -0
  1233. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.png +0 -0
  1234. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.psd +0 -0
  1235. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.png +0 -0
  1236. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.psd +0 -0
  1237. data/lib/frameworks/sproutcore/themes/ace/resources/body.css +13 -0
  1238. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/active_button.png +0 -0
  1239. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +33 -0
  1240. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/normal_button.png +0 -0
  1241. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_active_button.png +0 -0
  1242. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_button.png +0 -0
  1243. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button.png +0 -0
  1244. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_capsule.png +0 -0
  1245. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_pointer.png +0 -0
  1246. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +102 -0
  1247. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button.png +0 -0
  1248. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_capsule.png +0 -0
  1249. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_pointer.png +0 -0
  1250. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button.png +0 -0
  1251. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_capsule.png +0 -0
  1252. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_pointer.png +0 -0
  1253. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button.png +0 -0
  1254. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_capsule.png +0 -0
  1255. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_pointer.png +0 -0
  1256. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button.png +0 -0
  1257. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button_pointer.png +0 -0
  1258. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +78 -0
  1259. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button.png +0 -0
  1260. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button_pointer.png +0 -0
  1261. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button.png +0 -0
  1262. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button_pointer.png +0 -0
  1263. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button.png +0 -0
  1264. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button_pointer.png +0 -0
  1265. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button.png +0 -0
  1266. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +39 -0
  1267. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button.png +0 -0
  1268. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button.png +0 -0
  1269. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button.png +0 -0
  1270. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/button.css +41 -0
  1271. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button.png +0 -0
  1272. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_capsule.png +0 -0
  1273. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_pointer.png +0 -0
  1274. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +93 -0
  1275. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button.png +0 -0
  1276. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_capsule.png +0 -0
  1277. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_pointer.png +0 -0
  1278. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button.png +0 -0
  1279. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_capsule.png +0 -0
  1280. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_pointer.png +0 -0
  1281. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button.png +0 -0
  1282. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_capsule.png +0 -0
  1283. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_pointer.png +0 -0
  1284. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button.png +0 -0
  1285. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button_pointer.png +0 -0
  1286. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +72 -0
  1287. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button.png +0 -0
  1288. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button_pointer.png +0 -0
  1289. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button.png +0 -0
  1290. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button_pointer.png +0 -0
  1291. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button.png +0 -0
  1292. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button_pointer.png +0 -0
  1293. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.css +17 -0
  1294. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.js +5 -0
  1295. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/active_select.png +0 -0
  1296. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/normal_select.png +0 -0
  1297. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +21 -0
  1298. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox.css +40 -0
  1299. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
  1300. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
  1301. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
  1302. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
  1303. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
  1304. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
  1305. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox.css +40 -0
  1306. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
  1307. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
  1308. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
  1309. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
  1310. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
  1311. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
  1312. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/checkbox.css +7 -0
  1313. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +4 -0
  1314. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +17 -0
  1315. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/selection.png +0 -0
  1316. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source-list.js +3 -0
  1317. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source_list_view.css +36 -0
  1318. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +24 -0
  1319. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed.png +0 -0
  1320. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed_active.png +0 -0
  1321. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open.png +0 -0
  1322. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open_active.png +0 -0
  1323. data/lib/frameworks/sproutcore/themes/ace/resources/imagebutton/ace/imagebutton.css +11 -0
  1324. data/lib/frameworks/sproutcore/themes/ace/resources/loading.css +50 -0
  1325. data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +27 -0
  1326. data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark.png +0 -0
  1327. data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark_active.png +0 -0
  1328. data/lib/frameworks/sproutcore/themes/ace/resources/menu/down.png +0 -0
  1329. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +79 -0
  1330. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.png +0 -0
  1331. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
  1332. data/lib/frameworks/sproutcore/themes/ace/resources/menu/up.png +0 -0
  1333. data/lib/frameworks/sproutcore/themes/ace/resources/pane/pane.css +3 -0
  1334. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.css +13 -0
  1335. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
  1336. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel.png +0 -0
  1337. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.css +41 -0
  1338. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
  1339. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers.png +0 -0
  1340. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +32 -0
  1341. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +111 -0
  1342. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.js +12 -0
  1343. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.png +0 -0
  1344. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_empty.png +0 -0
  1345. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_notoolbar.png +0 -0
  1346. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers.png +0 -0
  1347. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers_notoolbar.png +0 -0
  1348. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +28 -0
  1349. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress.css +27 -0
  1350. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_content.png +0 -0
  1351. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_track.png +0 -0
  1352. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio.css +57 -0
  1353. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_active.png +0 -0
  1354. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed.png +0 -0
  1355. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed_active.png +0 -0
  1356. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected.png +0 -0
  1357. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected_active.png +0 -0
  1358. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_unselected.png +0 -0
  1359. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal.css +78 -0
  1360. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_touch.css +91 -0
  1361. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/thumb.png +0 -0
  1362. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows.png +0 -0
  1363. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows_active.png +0 -0
  1364. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/thumb.png +0 -0
  1365. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows.png +0 -0
  1366. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows_active.png +0 -0
  1367. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical.css +80 -0
  1368. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_touch.css +92 -0
  1369. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +91 -0
  1370. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_active.png +0 -0
  1371. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_normal.png +0 -0
  1372. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected.png +0 -0
  1373. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected_active.png +0 -0
  1374. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +91 -0
  1375. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_active.png +0 -0
  1376. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_normal.png +0 -0
  1377. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected.png +0 -0
  1378. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected_active.png +0 -0
  1379. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -0
  1380. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_active.png +0 -0
  1381. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_normal.png +0 -0
  1382. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected.png +0 -0
  1383. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected_active.png +0 -0
  1384. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +95 -0
  1385. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_active.png +0 -0
  1386. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_normal.png +0 -0
  1387. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected.png +0 -0
  1388. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected_active.png +0 -0
  1389. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +83 -0
  1390. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob.png +0 -0
  1391. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob_active.png +0 -0
  1392. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/slider.css +27 -0
  1393. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob.png +0 -0
  1394. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob_active.png +0 -0
  1395. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/slider.css +27 -0
  1396. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob.png +0 -0
  1397. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob_active.png +0 -0
  1398. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/slider.css +27 -0
  1399. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/track.png +0 -0
  1400. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +8 -0
  1401. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/track.png +0 -0
  1402. data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +31 -0
  1403. data/lib/frameworks/sproutcore/themes/ace/resources/tab/tab.css +3 -0
  1404. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +8 -0
  1405. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.png +0 -0
  1406. data/lib/frameworks/sproutcore/themes/ace/resources/well/well.css +7 -0
  1407. data/lib/frameworks/sproutcore/themes/ace/theme.js +30 -0
  1408. data/lib/frameworks/sproutcore/themes/empty_theme/theme.js +16 -0
  1409. data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/strings.js +1 -1
  1410. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/Panel.drawit/Data +0 -0
  1411. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
  1412. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
  1413. data/lib/frameworks/sproutcore/themes/standard_theme/Source/SproutCore Theme Buttons.psd b/data/lib/frameworks/sproutcore/themes/legacy_theme/Source/SproutCore Theme → Buttons.psd +0 -0
  1414. data/lib/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/Data b/data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView → Pattern.drawit/Data +0 -0
  1415. data/lib/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg b/data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView → Pattern.drawit/QuickLook/Preview.jpg +0 -0
  1416. data/lib/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg b/data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView → Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
  1417. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/10.png +0 -0
  1418. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/100.png +0 -0
  1419. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/102.png +0 -0
  1420. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/110.png +0 -0
  1421. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/120.png +0 -0
  1422. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/127.png +0 -0
  1423. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/18.png +0 -0
  1424. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/19.png +0 -0
  1425. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/2.png +0 -0
  1426. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/24.png +0 -0
  1427. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/26.png +0 -0
  1428. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/27.png +0 -0
  1429. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/28.png +0 -0
  1430. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/29.png +0 -0
  1431. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/30.png +0 -0
  1432. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/31.png +0 -0
  1433. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/33.png +0 -0
  1434. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/37.png +0 -0
  1435. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/41.png +0 -0
  1436. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/99.png +0 -0
  1437. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/10.png +0 -0
  1438. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/100.png +0 -0
  1439. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/102.png +0 -0
  1440. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/110.png +0 -0
  1441. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/120.png +0 -0
  1442. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/127.png +0 -0
  1443. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/18.png +0 -0
  1444. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/19.png +0 -0
  1445. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/2.png +0 -0
  1446. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/24.png +0 -0
  1447. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/26.png +0 -0
  1448. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/27.png +0 -0
  1449. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/28.png +0 -0
  1450. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/29.png +0 -0
  1451. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/30.png +0 -0
  1452. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/31.png +0 -0
  1453. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/33.png +0 -0
  1454. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/37.png +0 -0
  1455. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/41.png +0 -0
  1456. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/99.png +0 -0
  1457. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/10.png +0 -0
  1458. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/100.png +0 -0
  1459. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/102.png +0 -0
  1460. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/110.png +0 -0
  1461. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/120.png +0 -0
  1462. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/127.png +0 -0
  1463. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/18.png +0 -0
  1464. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/19.png +0 -0
  1465. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/2.png +0 -0
  1466. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/24.png +0 -0
  1467. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/26.png +0 -0
  1468. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/27.png +0 -0
  1469. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/28.png +0 -0
  1470. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/29.png +0 -0
  1471. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/30.png +0 -0
  1472. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/31.png +0 -0
  1473. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/33.png +0 -0
  1474. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/37.png +0 -0
  1475. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/41.png +0 -0
  1476. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/99.png +0 -0
  1477. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/48/10.png +0 -0
  1478. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/48/18.png +0 -0
  1479. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/48/19.png +0 -0
  1480. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/48/2.png +0 -0
  1481. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-x.drawit/Data +0 -0
  1482. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
  1483. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
  1484. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-y.drawit/Data +0 -0
  1485. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
  1486. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
  1487. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sc-theme-repeat-x-2.psd +0 -0
  1488. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sc-theme-repeat-x.psd +0 -0
  1489. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sc-theme-sprite.psd +0 -0
  1490. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sc-theme-ysprite.psd +0 -0
  1491. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/shared-icons.psd +0 -0
  1492. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sproutcore-logo.psd +0 -0
  1493. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sticky-note.psd +0 -0
  1494. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/button.css +0 -0
  1495. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/checkbox.css +0 -0
  1496. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/collection.css +0 -0
  1497. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/core.css +0 -0
  1498. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/disclosure.css +0 -0
  1499. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/icons/mini_222222.png +0 -0
  1500. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/icons/mini_454545.png +0 -0
  1501. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/icons/mini_888888.png +0 -0
  1502. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/icons/mini_ffffff.png +0 -0
  1503. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/panels/sprite-x.png +0 -0
  1504. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/panels/sprite-y.png +0 -0
  1505. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-scroller-repeat-x.png +0 -0
  1506. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-scroller-repeat-y.png +0 -0
  1507. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-scroller-sprite.png +0 -0
  1508. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-theme-repeat-x.png +0 -0
  1509. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-theme-ysprite.png +0 -0
  1510. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-toolbar-view.png +0 -0
  1511. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/label.css +0 -0
  1512. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/list_item.css +0 -0
  1513. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/menu.css +0 -0
  1514. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/menu_item_view.css +0 -0
  1515. data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/pane.css +18 -0
  1516. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/panel.css +0 -0
  1517. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/picker.css +0 -0
  1518. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/progress.css +0 -0
  1519. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/radio.css +0 -0
  1520. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/scroller.css +0 -0
  1521. data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/segmented.css +270 -0
  1522. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/slider.css +0 -0
  1523. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/split_view.css +0 -0
  1524. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/tab.css +0 -0
  1525. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/table.css +0 -0
  1526. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/text_field.css +0 -0
  1527. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/toolbar.css +0 -0
  1528. data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/well.css +0 -0
  1529. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +89 -0
  1530. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/panel.js +28 -0
  1531. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +194 -0
  1532. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +67 -0
  1533. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/well.js +27 -0
  1534. data/lib/frameworks/sproutcore/themes/legacy_theme/theme.js +13 -0
  1535. data/lib/gen/app/templates/apps/@target_name@/Buildfile +14 -0
  1536. data/lib/gen/app/templates/apps/@target_name@/theme.js +27 -0
  1537. data/lib/gen/html_app/Buildfile +36 -0
  1538. data/lib/gen/html_app/README +1 -0
  1539. data/lib/gen/html_app/USAGE +15 -0
  1540. data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +14 -0
  1541. data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
  1542. data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +4 -0
  1543. data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +1 -0
  1544. data/lib/gen/html_project/Buildfile +45 -0
  1545. data/lib/gen/html_project/INIT +3 -0
  1546. data/lib/gen/html_project/README +1 -0
  1547. data/lib/gen/html_project/USAGE +2 -0
  1548. data/lib/gen/html_project/templates/@filename@/Buildfile +8 -0
  1549. data/lib/gen/html_project/templates/@filename@/README +7 -0
  1550. data/lib/gen/project/templates/@filename@/Buildfile +7 -2
  1551. data/lib/gen/theme/templates/themes/@target_name@/Buildfile +3 -0
  1552. data/lib/gen/theme/templates/themes/@target_name@/theme.js +23 -0
  1553. data/lib/sproutcore.rb +11 -2
  1554. data/lib/sproutcore/builders.rb +4 -2
  1555. data/lib/sproutcore/builders/base.rb +10 -3
  1556. data/lib/sproutcore/builders/chance_file.rb +78 -0
  1557. data/lib/sproutcore/builders/combine.rb +6 -5
  1558. data/lib/sproutcore/builders/handlebars.rb +30 -0
  1559. data/lib/sproutcore/builders/html.rb +2 -0
  1560. data/lib/sproutcore/builders/javascript.rb +15 -2
  1561. data/lib/sproutcore/builders/minify.rb +14 -25
  1562. data/lib/sproutcore/builders/module.rb +74 -0
  1563. data/lib/sproutcore/builders/string_wrapper.rb +41 -0
  1564. data/lib/sproutcore/buildfile.rb +17 -17
  1565. data/lib/sproutcore/buildfile/task.rb +4 -12
  1566. data/lib/sproutcore/buildfile/task_manager.rb +13 -4
  1567. data/lib/sproutcore/helpers.rb +1 -1
  1568. data/lib/sproutcore/helpers/entry_sorter.rb +5 -9
  1569. data/lib/sproutcore/helpers/minifier.rb +110 -0
  1570. data/lib/sproutcore/helpers/static_helper.rb +105 -39
  1571. data/lib/sproutcore/models/generator.rb +16 -0
  1572. data/lib/sproutcore/models/manifest.rb +3 -3
  1573. data/lib/sproutcore/models/manifest_entry.rb +10 -3
  1574. data/lib/sproutcore/models/target.rb +146 -34
  1575. data/lib/sproutcore/rack/dev.rb +3 -3
  1576. data/lib/sproutcore/rack/proxy.rb +1 -1
  1577. data/lib/sproutcore/tools.rb +53 -5
  1578. data/lib/sproutcore/tools/build.rb +10 -16
  1579. data/lib/sproutcore/tools/docs.rb +1 -1
  1580. data/lib/sproutcore/tools/gen.rb +1 -1
  1581. data/lib/sproutcore/tools/init.rb +26 -10
  1582. data/lib/sproutcore/tools/server.rb +9 -1
  1583. data/lib/sproutcore/version.rb +1 -0
  1584. data/spec/buildtasks/manifest/prepare_build_tasks/chance_2x_spec.rb +100 -0
  1585. data/spec/buildtasks/manifest/prepare_build_tasks/chance_spec.rb +104 -0
  1586. data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +86 -9
  1587. data/spec/buildtasks/manifest/prepare_build_tasks/css_spec.rb +1 -1
  1588. data/spec/buildtasks/manifest/prepare_build_tasks/handlebars_spec.rb +39 -0
  1589. data/spec/buildtasks/manifest/prepare_build_tasks/minify_spec.rb +1 -1
  1590. data/spec/buildtasks/manifest/prepare_build_tasks/module_info_spec.rb +96 -0
  1591. data/spec/buildtasks/manifest/prepare_build_tasks/module_spec.rb +83 -0
  1592. data/spec/buildtasks/manifest/prepare_build_tasks/packed_2x_indirect_spec.rb +191 -0
  1593. data/spec/buildtasks/manifest/prepare_build_tasks/packed_2x_spec.rb +185 -0
  1594. data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +46 -11
  1595. data/spec/buildtasks/manifest/spec_helper.rb +4 -0
  1596. data/spec/fixtures/builder_tests/Buildfile +11 -9
  1597. data/spec/fixtures/builder_tests/apps/chance_test/Buildfile +14 -0
  1598. data/spec/fixtures/builder_tests/apps/chance_test/core.js +27 -0
  1599. data/spec/fixtures/builder_tests/apps/chance_test/main.js +30 -0
  1600. data/spec/fixtures/builder_tests/apps/chance_test/resources/demo.css +6 -0
  1601. data/spec/fixtures/builder_tests/apps/chance_test/resources/force@2x.png +0 -0
  1602. data/spec/fixtures/builder_tests/apps/chance_test/resources/last_file.css +7 -0
  1603. data/spec/fixtures/builder_tests/apps/chance_test/resources/loading.rhtml +9 -0
  1604. data/spec/fixtures/builder_tests/apps/chance_test/resources/main_page.js +24 -0
  1605. data/spec/fixtures/builder_tests/apps/chance_test/resources/z_first_file.css +6 -0
  1606. data/spec/fixtures/builder_tests/apps/chance_test/theme.js +27 -0
  1607. data/spec/fixtures/builder_tests/apps/handlebars_test/template.handlebars +5 -0
  1608. data/spec/fixtures/builder_tests/apps/module_test/module.js +1 -0
  1609. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/req_style_2.css +0 -0
  1610. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/test.rhtml +1 -0
  1611. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/javascript.js +1 -0
  1612. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/lib/alt_layout.rhtml +0 -0
  1613. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/req_js_2.js +0 -0
  1614. data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/dynamic_req_js_1.js +0 -0
  1615. data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/english.lproj/dynamic_req_style_1.css +0 -0
  1616. data/spec/fixtures/builder_tests/apps/module_test/modules/inlined_module/README +0 -0
  1617. data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/req_style_1.css +0 -0
  1618. data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/strings.js +4 -0
  1619. data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/test.rhtml +1 -0
  1620. data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/req_js_1.js +0 -0
  1621. data/spec/fixtures/helper_tests/apps/minifier_test/core.js +8 -0
  1622. data/spec/fixtures/real_world/Buildfile +11 -1
  1623. data/spec/fixtures/real_world/apps/account/modules/preferences/README +0 -0
  1624. data/spec/fixtures/real_world/apps/calendar/modules/preferences/README +0 -0
  1625. data/spec/fixtures/real_world/apps/contacts/modules/preferences/README +0 -0
  1626. data/spec/fixtures/real_world/apps/contacts/modules/printing/README +0 -0
  1627. data/spec/fixtures/real_world/apps/mail/modules/preferences/README +0 -0
  1628. data/spec/fixtures/real_world/apps/mail/modules/printing/README +0 -0
  1629. data/spec/fixtures/real_world/apps/photos/modules/email/README +0 -0
  1630. data/spec/fixtures/real_world/apps/photos/modules/preferences/README +0 -0
  1631. data/spec/fixtures/real_world/frameworks/no_2x/resources/test.css +1 -0
  1632. data/spec/fixtures/real_world/frameworks/no_2x/resources/test.png +0 -0
  1633. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/templates/demo.handlebars +4 -0
  1634. data/spec/fixtures/real_world/frameworks/sproutcore/resources/force@2x.png +0 -0
  1635. data/spec/lib/builders/chance_file_spec.rb +44 -0
  1636. data/spec/lib/builders/handlebars_spec.rb +29 -0
  1637. data/spec/lib/builders/module_spec.rb +133 -0
  1638. data/spec/lib/builders/strings_spec.rb +1 -0
  1639. data/spec/lib/helpers/minifier.rb +31 -0
  1640. data/spec/lib/models/project/find_targets_for_spec.rb +1 -1
  1641. data/sproutcore.gemspec +11 -4
  1642. data/vendor/chance/.gitignore +5 -0
  1643. data/vendor/chance/Gemfile +4 -0
  1644. data/vendor/chance/Rakefile +2 -0
  1645. data/vendor/chance/bin/chance +46 -0
  1646. data/vendor/chance/chance.gemspec +28 -0
  1647. data/vendor/chance/lib/chance.rb +156 -0
  1648. data/vendor/chance/lib/chance/instance.rb +330 -0
  1649. data/vendor/chance/lib/chance/instance/data_url.rb +85 -0
  1650. data/vendor/chance/lib/chance/instance/javascript.rb +19 -0
  1651. data/vendor/chance/lib/chance/instance/slicing.rb +181 -0
  1652. data/vendor/chance/lib/chance/instance/spriting.rb +311 -0
  1653. data/vendor/chance/lib/chance/parser.rb +835 -0
  1654. data/vendor/chance/lib/chance/perf.rb +17 -0
  1655. data/vendor/chance/lib/chance/version.rb +3 -0
  1656. data/vendor/chance/lib/tester/test.rb +108 -0
  1657. data/vendor/chance/lib/tester/test_runner.rb +27 -0
  1658. data/vendor/chance/test/case/abc.png +0 -0
  1659. data/vendor/chance/test/case/more/abc.png +0 -0
  1660. data/vendor/chance/test/case/more/another.css +4 -0
  1661. data/vendor/chance/test/case/test1.css +22 -0
  1662. data/vendor/chance/test/case/test2.css +6 -0
  1663. data/vendor/chance/tests/parser/basic/input/test.css +4 -0
  1664. data/vendor/chance/tests/parser/basic/output/test.parsed.css +5 -0
  1665. data/vendor/sproutcore/SCCompiler.jar +0 -0
  1666. data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
  1667. data/vendor/sproutcore/lib/htmlcompressor-0.9.3.jar +0 -0
  1668. data/{lib/sproutcore/vendor/yui-compressor → vendor/sproutcore/lib}/yuicompressor-2.4.2.jar +0 -0
  1669. data/vendor/sproutcore/src/SCCompiler/build.xml +74 -0
  1670. data/vendor/sproutcore/src/SCCompiler/lib/args4j-2.0.12.jar +0 -0
  1671. data/vendor/sproutcore/src/SCCompiler/lib/htmlcompressor-0.9.3.jar +0 -0
  1672. data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.2.jar +0 -0
  1673. data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.4.jar +0 -0
  1674. data/vendor/sproutcore/src/SCCompiler/manifest.mf +3 -0
  1675. data/vendor/sproutcore/src/SCCompiler/nbproject/build-impl.xml +894 -0
  1676. data/vendor/sproutcore/src/SCCompiler/nbproject/genfiles.properties +8 -0
  1677. data/vendor/sproutcore/src/SCCompiler/nbproject/private/config.properties +0 -0
  1678. data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.properties +10 -0
  1679. data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.xml +4 -0
  1680. data/vendor/sproutcore/src/SCCompiler/nbproject/project.properties +90 -0
  1681. data/vendor/sproutcore/src/SCCompiler/nbproject/project.xml +15 -0
  1682. data/vendor/sproutcore/src/SCCompiler/src/com/sproutcore/Main.java +348 -0
  1683. metadata +1236 -560
  1684. data/lib/frameworks/sproutcore/CHANGELOG +0 -93
  1685. data/lib/frameworks/sproutcore/CHANGELOG-1.4.md +0 -170
  1686. data/lib/frameworks/sproutcore/apps/docs/core.js +0 -27
  1687. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Preview.pdf +0 -0
  1688. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Thumbnail.tiff +0 -0
  1689. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/data.plist +0 -14378
  1690. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image10.png +0 -0
  1691. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image14.png +0 -0
  1692. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image9.tiff +0 -0
  1693. data/lib/frameworks/sproutcore/apps/docs/english.lproj/loading.rhtml +0 -9
  1694. data/lib/frameworks/sproutcore/apps/docs/english.lproj/main_page.js +0 -22
  1695. data/lib/frameworks/sproutcore/apps/docs/english.lproj/strings.js +0 -15
  1696. data/lib/frameworks/sproutcore/apps/docs/main.js +0 -30
  1697. data/lib/frameworks/sproutcore/apps/greenhouse/README +0 -25
  1698. data/lib/frameworks/sproutcore/apps/greenhouse/TODO +0 -72
  1699. data/lib/frameworks/sproutcore/apps/greenhouse/controllers/file.js +0 -75
  1700. data/lib/frameworks/sproutcore/apps/greenhouse/controllers/library.js +0 -201
  1701. data/lib/frameworks/sproutcore/apps/greenhouse/core.js +0 -67
  1702. data/lib/frameworks/sproutcore/apps/greenhouse/core_file.js +0 -124
  1703. data/lib/frameworks/sproutcore/apps/greenhouse/data_source.js +0 -250
  1704. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/app_page.js +0 -377
  1705. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/app-selector.css +0 -111
  1706. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/button.css +0 -310
  1707. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/dock.css +0 -85
  1708. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/general.css +0 -52
  1709. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/main-page.css +0 -120
  1710. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/menu.css +0 -52
  1711. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/modal.css +0 -40
  1712. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/picker.css +0 -188
  1713. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/tabbed.css +0 -68
  1714. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/dialogs.js +0 -302
  1715. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/inspectors.js +0 -365
  1716. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/strings.js +0 -87
  1717. data/lib/frameworks/sproutcore/apps/greenhouse/main.js +0 -28
  1718. data/lib/frameworks/sproutcore/apps/greenhouse/models/design.js +0 -22
  1719. data/lib/frameworks/sproutcore/apps/greenhouse/models/dir.js +0 -92
  1720. data/lib/frameworks/sproutcore/apps/greenhouse/models/file.js +0 -51
  1721. data/lib/frameworks/sproutcore/apps/greenhouse/states/inspector.js +0 -144
  1722. data/lib/frameworks/sproutcore/apps/greenhouse/states/library.js +0 -133
  1723. data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +0 -224
  1724. data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +0 -291
  1725. data/lib/frameworks/sproutcore/apps/greenhouse/states/ready.js +0 -197
  1726. data/lib/frameworks/sproutcore/apps/greenhouse/tests/views/list_item.js +0 -15
  1727. data/lib/frameworks/sproutcore/apps/greenhouse/views/plist_item.js +0 -39
  1728. data/lib/frameworks/sproutcore/apps/greenhouse/views/tear_off_picker.js +0 -56
  1729. data/lib/frameworks/sproutcore/design/TestRunner Design.graffle/image11.png +0 -0
  1730. data/lib/frameworks/sproutcore/design/TestRunner Design.graffle/image13.png +0 -0
  1731. data/lib/frameworks/sproutcore/design/TestRunner Design.graffle/image8.png +0 -0
  1732. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/parentless.js +0 -134
  1733. data/lib/frameworks/sproutcore/frameworks/datejs/core.js +0 -865
  1734. data/lib/frameworks/sproutcore/frameworks/datejs/english.lproj/en-US.js +0 -186
  1735. data/lib/frameworks/sproutcore/frameworks/datejs/extras.js +0 -332
  1736. data/lib/frameworks/sproutcore/frameworks/datejs/license.js +0 -25
  1737. data/lib/frameworks/sproutcore/frameworks/datejs/parser.js +0 -1116
  1738. data/lib/frameworks/sproutcore/frameworks/datejs/spanish.lproj/es-CO.js +0 -186
  1739. data/lib/frameworks/sproutcore/frameworks/datejs/sugarpak.js +0 -475
  1740. data/lib/frameworks/sproutcore/frameworks/datejs/time.js +0 -269
  1741. data/lib/frameworks/sproutcore/frameworks/datejs/validators/datejs.js +0 -34
  1742. data/lib/frameworks/sproutcore/frameworks/designer/coders/design.js +0 -20
  1743. data/lib/frameworks/sproutcore/frameworks/designer/coders/localization.js +0 -19
  1744. data/lib/frameworks/sproutcore/frameworks/designer/coders/object.js +0 -347
  1745. data/lib/frameworks/sproutcore/frameworks/designer/controllers/controllers.js +0 -16
  1746. data/lib/frameworks/sproutcore/frameworks/designer/controllers/design.js +0 -37
  1747. data/lib/frameworks/sproutcore/frameworks/designer/controllers/designs.js +0 -134
  1748. data/lib/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +0 -170
  1749. data/lib/frameworks/sproutcore/frameworks/designer/controllers/page_files.js +0 -22
  1750. data/lib/frameworks/sproutcore/frameworks/designer/core.js +0 -26
  1751. data/lib/frameworks/sproutcore/frameworks/designer/css/css_rule.js +0 -22
  1752. data/lib/frameworks/sproutcore/frameworks/designer/css/css_style.js +0 -29
  1753. data/lib/frameworks/sproutcore/frameworks/designer/css/css_style_sheet.js +0 -201
  1754. data/lib/frameworks/sproutcore/frameworks/designer/designers/button.js +0 -21
  1755. data/lib/frameworks/sproutcore/frameworks/designer/designers/label.js +0 -16
  1756. data/lib/frameworks/sproutcore/frameworks/designer/designers/object_designer.js +0 -296
  1757. data/lib/frameworks/sproutcore/frameworks/designer/designers/tab.js +0 -18
  1758. data/lib/frameworks/sproutcore/frameworks/designer/designers/text_field.js +0 -15
  1759. data/lib/frameworks/sproutcore/frameworks/designer/designers/view_designer.js +0 -1259
  1760. data/lib/frameworks/sproutcore/frameworks/designer/english.lproj/design_page.js +0 -55
  1761. data/lib/frameworks/sproutcore/frameworks/designer/ext/object.js +0 -26
  1762. data/lib/frameworks/sproutcore/frameworks/designer/ext/page.js +0 -86
  1763. data/lib/frameworks/sproutcore/frameworks/designer/ext/view.js +0 -54
  1764. data/lib/frameworks/sproutcore/frameworks/designer/mixins/button.js +0 -11
  1765. data/lib/frameworks/sproutcore/frameworks/designer/mixins/snap_lines.js +0 -221
  1766. data/lib/frameworks/sproutcore/frameworks/designer/views/designer_drop_target.js +0 -138
  1767. data/lib/frameworks/sproutcore/frameworks/designer/views/drawing.js +0 -219
  1768. data/lib/frameworks/sproutcore/frameworks/designer/views/selection_handles.js +0 -78
  1769. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/array.js +0 -518
  1770. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +0 -44
  1771. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/object.js +0 -342
  1772. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +0 -474
  1773. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/strings.js +0 -15
  1774. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +0 -57
  1775. data/lib/frameworks/sproutcore/frameworks/foundation/ext/object.js +0 -83
  1776. data/lib/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +0 -162
  1777. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +0 -585
  1778. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/responder_context.js +0 -269
  1779. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +0 -250
  1780. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/string.js +0 -543
  1781. data/lib/frameworks/sproutcore/frameworks/foundation/panes/main.js +0 -51
  1782. data/lib/frameworks/sproutcore/frameworks/foundation/panes/pane.js +0 -848
  1783. data/lib/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +0 -84
  1784. data/lib/frameworks/sproutcore/frameworks/foundation/system/application.js +0 -37
  1785. data/lib/frameworks/sproutcore/frameworks/foundation/system/browser.js +0 -59
  1786. data/lib/frameworks/sproutcore/frameworks/foundation/system/builder.js +0 -210
  1787. data/lib/frameworks/sproutcore/frameworks/foundation/system/bundle.js +0 -337
  1788. data/lib/frameworks/sproutcore/frameworks/foundation/system/cursor.js +0 -131
  1789. data/lib/frameworks/sproutcore/frameworks/foundation/system/datetime.js +0 -1140
  1790. data/lib/frameworks/sproutcore/frameworks/foundation/system/device.js +0 -143
  1791. data/lib/frameworks/sproutcore/frameworks/foundation/system/event.js +0 -894
  1792. data/lib/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +0 -433
  1793. data/lib/frameworks/sproutcore/frameworks/foundation/system/json.js +0 -515
  1794. data/lib/frameworks/sproutcore/frameworks/foundation/system/locale.js +0 -293
  1795. data/lib/frameworks/sproutcore/frameworks/foundation/system/page.js +0 -108
  1796. data/lib/frameworks/sproutcore/frameworks/foundation/system/platform.js +0 -298
  1797. data/lib/frameworks/sproutcore/frameworks/foundation/system/ready.js +0 -197
  1798. data/lib/frameworks/sproutcore/frameworks/foundation/system/render_context.js +0 -988
  1799. data/lib/frameworks/sproutcore/frameworks/foundation/system/request.js +0 -599
  1800. data/lib/frameworks/sproutcore/frameworks/foundation/system/responder.js +0 -124
  1801. data/lib/frameworks/sproutcore/frameworks/foundation/system/response.js +0 -538
  1802. data/lib/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +0 -2068
  1803. data/lib/frameworks/sproutcore/frameworks/foundation/system/time.js +0 -473
  1804. data/lib/frameworks/sproutcore/frameworks/foundation/system/timer.js +0 -551
  1805. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils.js +0 -710
  1806. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/array_case.js +0 -218
  1807. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/enum_case.js +0 -206
  1808. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/null_case.js +0 -64
  1809. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/selection_support.js +0 -318
  1810. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/single_case.js +0 -136
  1811. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/empty_case.js +0 -82
  1812. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/multiple_case.js +0 -111
  1813. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/single_case.js +0 -193
  1814. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/single_enumerable_case.js +0 -265
  1815. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/content.js +0 -195
  1816. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/displayProperties.js +0 -89
  1817. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/keyEquivalents.js +0 -57
  1818. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/ui.js +0 -68
  1819. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/content.js +0 -168
  1820. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/responder_context.js +0 -75
  1821. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/string.js +0 -83
  1822. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/builder.js +0 -42
  1823. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +0 -1334
  1824. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +0 -387
  1825. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +0 -405
  1826. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/within.js +0 -66
  1827. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/datetime.js +0 -382
  1828. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/json.js +0 -14
  1829. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/locale.js +0 -134
  1830. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/begin.js +0 -47
  1831. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/element.js +0 -44
  1832. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/end.js +0 -124
  1833. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +0 -51
  1834. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +0 -50
  1835. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +0 -28
  1836. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +0 -179
  1837. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +0 -101
  1838. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/init.js +0 -55
  1839. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/join.js +0 -28
  1840. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/push_text.js +0 -74
  1841. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/tag.js +0 -46
  1842. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +0 -218
  1843. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +0 -223
  1844. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeKeyPane.js +0 -124
  1845. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMainPane.js +0 -68
  1846. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMenuPane.js +0 -48
  1847. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +0 -101
  1848. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/targetForAction.js +0 -251
  1849. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invalidate.js +0 -38
  1850. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invokeLater.js +0 -201
  1851. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/isPaused.js +0 -71
  1852. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/performAction.js +0 -69
  1853. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +0 -170
  1854. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/normalizeURL.js +0 -18
  1855. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/rect.js +0 -99
  1856. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/main_pane.js +0 -31
  1857. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +0 -124
  1858. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/firstResponder.js +0 -148
  1859. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/keyPane.js +0 -133
  1860. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/layout.js +0 -31
  1861. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendEvent.js +0 -206
  1862. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +0 -133
  1863. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +0 -246
  1864. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertLayouts.js +0 -145
  1865. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +0 -122
  1866. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/createLayer.js +0 -97
  1867. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/destroyLayer.js +0 -83
  1868. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/didAppendToDocument.js +0 -48
  1869. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +0 -50
  1870. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/init.js +0 -50
  1871. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/insertBefore.js +0 -200
  1872. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisible.js +0 -51
  1873. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +0 -116
  1874. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layer.js +0 -150
  1875. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutChildViews.js +0 -162
  1876. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutDidChange.js +0 -127
  1877. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +0 -531
  1878. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/nextValidKeyView.js +0 -110
  1879. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/parentViewDidChange.js +0 -67
  1880. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +0 -180
  1881. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/removeChild.js +0 -189
  1882. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/render.js +0 -83
  1883. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/replaceChild.js +0 -29
  1884. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +0 -146
  1885. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +0 -194
  1886. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +0 -202
  1887. data/lib/frameworks/sproutcore/frameworks/foundation/views/view.js +0 -3313
  1888. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +0 -110
  1889. data/lib/frameworks/sproutcore/frameworks/runtime/protocols/observable_protocol.js +0 -40
  1890. data/lib/frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js +0 -131
  1891. data/lib/frameworks/sproutcore/frameworks/runtime/system/cookie.js +0 -160
  1892. data/lib/frameworks/sproutcore/frameworks/runtime/system/selection_set.js +0 -697
  1893. data/lib/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +0 -379
  1894. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +0 -622
  1895. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/cookie.js +0 -163
  1896. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/add.js +0 -92
  1897. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/copy.js +0 -17
  1898. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/indexSetForSource.js +0 -98
  1899. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/isEqual.js +0 -60
  1900. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/remove.js +0 -111
  1901. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +0 -194
  1902. data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart.js +0 -336
  1903. data/lib/frameworks/sproutcore/frameworks/statechart/tests/basic.js +0 -90
  1904. data/lib/frameworks/sproutcore/frameworks/statechart/tests/history.js +0 -71
  1905. data/lib/frameworks/sproutcore/frameworks/statechart/tests/nested.js +0 -59
  1906. data/lib/frameworks/sproutcore/frameworks/statechart/tests/transient.js +0 -148
  1907. data/lib/frameworks/sproutcore/frameworks/testing/jquery.js +0 -3559
  1908. data/lib/frameworks/sproutcore/frameworks/testing/qunit.js +0 -827
  1909. data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +0 -18
  1910. data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +0 -275
  1911. data/lib/sproutcore/builders/bundle.rb +0 -63
  1912. data/lib/sproutcore/buildfile/cloneable.rb +0 -34
  1913. data/lib/sproutcore/vendor/yui-compressor/SCyuicompressor-2.4.2.jar +0 -0
  1914. data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +0 -254
  1915. data/spec/fixtures/builder_tests/apps/bundle_test/bundle.js +0 -1
  1916. data/spec/lib/builders/bundle_spec.rb +0 -295
@@ -0,0 +1,195 @@
1
+ sc_require('system/object');
2
+
3
+ /**
4
+ @class
5
+ @private
6
+
7
+ SC._PropertyChain is used as the bookkeeping system for notifying the KVO
8
+ system of changes to computed properties that contains paths as dependent
9
+ keys.
10
+
11
+ Each instance of SC._PropertyChain serves as a node in a linked list. One node
12
+ is created for each property in the path, and stores a reference to the name
13
+ of the property and the object to which it belongs. If that property changes,
14
+ the SC._PropertyChain instance notifies its associated computed property to
15
+ invalidate, then rebuilds the chain with the new value.
16
+
17
+ To create a new chain, call SC._PropertyChain.createChain() with the target,
18
+ path, and property to invalidate if any of the objects in the path change.
19
+
20
+ For example, if you called createChain() with 'foo.bar.baz', it would
21
+ create a linked list like this:
22
+
23
+ --------------------- --------------------- ---------------------
24
+ | property: 'foo' | | property: 'bar' | | property: 'baz' |
25
+ | nextProperty: 'bar' | | nextProperty: 'baz' | | nextProperty: undef |
26
+ | next: ------->| next: ------->| next: undefined |
27
+ --------------------- --------------------- ---------------------
28
+
29
+ @extends SC.Object
30
+ @since SproutCore 1.5
31
+ */
32
+
33
+ SC._PropertyChain = SC.Object.extend(
34
+ /** @scope SC.Object.prototype */ {
35
+ /**
36
+ The object represented by this node in the chain.
37
+
38
+ @property {Object}
39
+ */
40
+ object: null,
41
+
42
+ /**
43
+ The key on the previous object in the chain that contains the object
44
+ represented by this node in the chain.
45
+
46
+ @property {String}
47
+ */
48
+ property: null,
49
+
50
+ /**
51
+ The target object. This is the object passed to createChain(), and the
52
+ object which contains the +toInvalidate+ property that will be invalidated
53
+ if +property+ changes.
54
+
55
+ @property {Object}
56
+ */
57
+ target: null,
58
+
59
+ /**
60
+ The property of +target+ to invalidate when +property+ changes.
61
+
62
+ @property {String}
63
+ */
64
+ toInvalidate: null,
65
+
66
+ /**
67
+ The property key on +object+ that contains the object represented by the
68
+ next node in the chain.
69
+
70
+ @property {String}
71
+ */
72
+ nextProperty: null,
73
+
74
+ /**
75
+ Registers this segment of the chain with the object it represents.
76
+
77
+ This should be called with the object represented by the previous node in
78
+ the chain as the first parameter. If no previous object is provided, it will
79
+ assume it is the root node in the chain and treat the target as the previous
80
+ object.
81
+
82
+ @param {Object} [newObject] The object in the chain to hook to.
83
+ */
84
+ activate: function(newObject) {
85
+ var curObject = this.get('object'),
86
+ property = this.get('property'),
87
+ nextObject;
88
+
89
+ // If no parameter is passed, assume we are the root in the chain
90
+ // and look up property relative to the target, since dependent key
91
+ // paths are always relative.
92
+ if (!newObject) { newObject = this.get('target'); }
93
+
94
+ if (curObject && curObject!==newObject) {
95
+ this.deactivate();
96
+ }
97
+ this.set('object', newObject);
98
+
99
+ // In the special case of @each, we treat the enumerable as the next
100
+ // property so just skip registering it
101
+ if (newObject && property!=='@each') {
102
+ newObject.registerDependentKeyWithChain(property, this);
103
+ }
104
+
105
+ // now - lookup the object for the next one...
106
+ if (this.next) {
107
+ nextObject = newObject ? newObject.get(property) : undefined;
108
+ this.next.activate(nextObject);
109
+ }
110
+
111
+ return this;
112
+ },
113
+
114
+ /**
115
+ Removes this segment of the chain from the object it represents. This is
116
+ usually called when the object represented by the previous segment in the
117
+ chain changes.
118
+ */
119
+ deactivate: function() {
120
+ var object = this.get('object'),
121
+ property = this.get('property');
122
+
123
+ // If the chain element is not associated with an object,
124
+ // we don't need to deactivate anything.
125
+ if (object) object.removeDependentKeyWithChain(property, this);
126
+ if (this.next) this.next.deactivate();
127
+ return this;
128
+ },
129
+
130
+ /**
131
+ Invalidates the +toInvalidate+ property of the +target+ object.
132
+ */
133
+ notifyPropertyDidChange: function() {
134
+ var target = this.get('target'),
135
+ toInvalidate = this.get('toInvalidate'),
136
+ curObj, newObj;
137
+
138
+ // Tell the target of the chain to invalidate the property
139
+ // that depends on this element of the chain
140
+ target.propertyDidChange(toInvalidate);
141
+
142
+ // If there are more dependent keys in the chain, we need
143
+ // to invalidate them and set them up again.
144
+ if (this.next) {
145
+ // Get the new value of the object associated with this node to pass to
146
+ // activate().
147
+ curObj = this.get('object');
148
+ newObj = curObj.get(this.get('property'));
149
+
150
+ this.next.activate(newObj); // reactivate down the line
151
+ }
152
+ },
153
+
154
+ //@ if (debug)
155
+ /**
156
+ Returns a string representation of the chain segment.
157
+
158
+ @returns {String}
159
+ */
160
+ toString: function() {
161
+ return "SC._PropertyChain(target: %@, property: %@)".fmt(
162
+ this.get('target'), this.get('property'));
163
+ }
164
+ //@ endif
165
+ });
166
+
167
+ SC._PropertyChain.createChain = function(path, target, toInvalidate) {
168
+ var parts = path.split('.');
169
+ var len = parts.length,
170
+ i = 1;
171
+
172
+ var root = SC._PropertyChain.create({
173
+ property: parts[0],
174
+ target: target,
175
+ toInvalidate: toInvalidate,
176
+ nextProperty: parts[1]
177
+ });
178
+
179
+
180
+ root.set('length', len);
181
+ var tail = root;
182
+
183
+ while(--len >= 1) {
184
+ tail = tail.next = SC._PropertyChain.create({
185
+ property: parts[i],
186
+ target: target,
187
+ toInvalidate: toInvalidate,
188
+ nextProperty: parts[++i]
189
+ });
190
+
191
+ tail.set('length', len);
192
+ }
193
+
194
+ return root;
195
+ };
@@ -1,288 +1,265 @@
1
1
  // ==========================================================================
2
2
  // Project: SproutCore Costello - Property Observing Library
3
3
  // Copyright: ©2006-2011 Strobe Inc. and contributors.
4
- // Portions ©2008-2010 Apple Inc. All rights reserved.
4
+ // Portions ©2008-2011 Apple Inc. All rights reserved.
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- sc_require('system/object') ;
8
+ sc_require('ext/function');
9
+ sc_require('system/object');
9
10
 
10
11
  /**
11
12
  Debug parameter you can turn on. This will log all bindings that fire to
12
13
  the console. This should be disabled in production code. Note that you
13
14
  can also enable this from the console or temporarily.
14
-
15
+
15
16
  @property {Boolean}
16
17
  */
17
18
  SC.LOG_BINDINGS = NO ;
18
19
 
19
20
  /**
20
- Performance paramter. This will benchmark the time spent firing each
21
+ Performance paramter. This will benchmark the time spent firing each
21
22
  binding.
22
-
23
+
23
24
  @property {Boolean}
24
25
  */
25
26
  SC.BENCHMARK_BINDING_NOTIFICATIONS = NO ;
26
27
 
27
28
  /**
28
29
  Performance parameter. This will benchmark the time spend configuring each
29
- binding.
30
-
30
+ binding.
31
+
31
32
  @property {Boolean}
32
33
  */
33
34
  SC.BENCHMARK_BINDING_SETUP = NO;
34
-
35
- /**
35
+
36
+ /**
36
37
  Default placeholder for multiple values in bindings.
37
-
38
+
38
39
  @property {String}
39
40
  */
40
41
  SC.MULTIPLE_PLACEHOLDER = '@@MULT@@' ;
41
42
 
42
43
  /**
43
44
  Default placeholder for null values in bindings.
44
-
45
+
45
46
  @property {String}
46
47
  */
47
48
  SC.NULL_PLACEHOLDER = '@@NULL@@' ;
48
49
 
49
50
  /**
50
51
  Default placeholder for empty values in bindings.
51
-
52
+
52
53
  @property {String}
53
54
  */
54
55
  SC.EMPTY_PLACEHOLDER = '@@EMPTY@@' ;
55
56
 
56
57
 
57
58
  /**
58
- @namespace
59
-
59
+ @class
60
+
60
61
  A binding simply connects the properties of two objects so that whenever the
61
62
  value of one property changes, the other property will be changed also. You
62
63
  do not usually work with Binding objects directly but instead describe
63
64
  bindings in your class definition using something like:
64
-
65
- {{{
66
- valueBinding: "MyApp.someController.title"
67
- }}}
68
-
65
+
66
+ valueBinding: "MyApp.someController.title"
67
+
69
68
  This will create a binding from "MyApp.someController.title" to the "value"
70
69
  property of your object instance automatically. Now the two values will be
71
70
  kept in sync.
72
-
73
- h2. Customizing Your Bindings
74
-
75
- In addition to synchronizing values, bindings can also perform some basic
76
- transforms on values. These transforms can help to make sure the data fed
71
+
72
+ Customizing Your Bindings
73
+ ===
74
+
75
+ In addition to synchronizing values, bindings can also perform some basic
76
+ transforms on values. These transforms can help to make sure the data fed
77
77
  into one object always meets the expectations of that object regardless of
78
78
  what the other object outputs.
79
-
80
- To customize a binding, you can use one of the many helper methods defined
79
+
80
+ To customize a binding, you can use one of the many helper methods defined
81
81
  on SC.Binding like so:
82
-
83
- {{{
84
- valueBinding: SC.Binding.single("MyApp.someController.title")
85
- }}}
86
-
82
+
83
+ valueBinding: SC.Binding.single("MyApp.someController.title")
84
+
87
85
  This will create a binding just like the example above, except that now the
88
- binding will convert the value of MyApp.someController.title to a single
86
+ binding will convert the value of MyApp.someController.title to a single
89
87
  object (removing any arrays) before applying it to the "value" property of
90
88
  your object.
91
-
89
+
92
90
  You can also chain helper methods to build custom bindings like so:
93
-
94
- {{{
95
- valueBinding: SC.Binding.single("MyApp.someController.title").notEmpty("(EMPTY)")
96
- }}}
97
-
91
+
92
+ valueBinding: SC.Binding.single("MyApp.someController.title").notEmpty("(EMPTY)")
93
+
98
94
  This will force the value of MyApp.someController.title to be a single value
99
95
  and then check to see if the value is "empty" (null, undefined, empty array,
100
- or an empty string). If it is empty, the value will be set to the string
96
+ or an empty string). If it is empty, the value will be set to the string
101
97
  "(EMPTY)".
102
-
103
- h2. One Way Bindings
104
-
105
- One especially useful binding customization you can use is the oneWay()
106
- helper. This helper tells SproutCore that you are only interested in
98
+
99
+ One Way Bindings
100
+ ===
101
+
102
+ One especially useful binding customization you can use is the oneWay()
103
+ helper. This helper tells SproutCore that you are only interested in
107
104
  receiving changes on the object you are binding from. For example, if you
108
- are binding to a preference and you want to be notified if the preference
105
+ are binding to a preference and you want to be notified if the preference
109
106
  has changed, but your object will not be changing the preference itself, you
110
107
  could do:
111
-
112
- {{{
113
- bigTitlesBinding: SC.Binding.oneWay("MyApp.preferencesController.bigTitles")
114
- }}}
115
-
108
+
109
+ bigTitlesBinding: SC.Binding.oneWay("MyApp.preferencesController.bigTitles")
110
+
116
111
  This way if the value of MyApp.preferencesController.bigTitles changes the
117
- "bigTitles" property of your object will change also. However, if you
118
- change the value of your "bigTitles" property, it will not update the
112
+ "bigTitles" property of your object will change also. However, if you
113
+ change the value of your "bigTitles" property, it will not update the
119
114
  preferencesController.
120
-
121
- One way bindings are almost twice as fast to setup and twice as fast to
115
+
116
+ One way bindings are almost twice as fast to setup and twice as fast to
122
117
  execute because the binding only has to worry about changes to one side.
123
-
124
- You should consider using one way bindings anytime you have an object that
125
- may be created frequently and you do not intend to change a property; only
118
+
119
+ You should consider using one way bindings anytime you have an object that
120
+ may be created frequently and you do not intend to change a property; only
126
121
  to monitor it for changes. (such as in the example above).
127
-
128
- h2. Adding Custom Transforms
129
-
130
- In addition to using the standard helpers provided by SproutCore, you can
131
- also defined your own custom transform functions which will be used to
122
+
123
+ Adding Custom Transforms
124
+ ===
125
+
126
+ In addition to using the standard helpers provided by SproutCore, you can
127
+ also defined your own custom transform functions which will be used to
132
128
  convert the value. To do this, just define your transform function and add
133
- it to the binding with the transform() helper. The following example will
134
- not allow Integers less than ten. Note that it checks the value of the
129
+ it to the binding with the transform() helper. The following example will
130
+ not allow Integers less than ten. Note that it checks the value of the
135
131
  bindings and allows all other values to pass:
136
-
137
- {{{
138
- valueBinding: SC.Binding.transform(function(value, binding) {
139
- return ((SC.typeOf(value) === SC.T_NUMBER) && (value < 10)) ? 10 : value;
140
- }).from("MyApp.someController.value")
141
- }}}
142
-
132
+
133
+ valueBinding: SC.Binding.transform(function(value, binding) {
134
+ return ((SC.typeOf(value) === SC.T_NUMBER) && (value < 10)) ? 10 : value;
135
+ }).from("MyApp.someController.value")
136
+
143
137
  If you would like to instead use this transform on a number of bindings,
144
138
  you can also optionally add your own helper method to SC.Binding. This
145
- method should simply return the value of this.transform(). The example
139
+ method should simply return the value of this.transform(). The example
146
140
  below adds a new helper called notLessThan() which will limit the value to
147
141
  be not less than the passed minimum:
148
-
149
- {{{
150
- SC.Binding.notLessThan = function(minValue) {
151
- return this.transform(function(value, binding) {
152
- return ((SC.typeOf(value) === SC.T_NUMBER) && (value < minValue)) ? minValue : value ;
153
- }) ;
154
- } ;
155
- }}}
156
-
157
- You could specify this in your core.js file, for example. Then anywhere in
142
+
143
+ SC.Binding.notLessThan = function(minValue) {
144
+ return this.transform(function(value, binding) {
145
+ return ((SC.typeOf(value) === SC.T_NUMBER) && (value < minValue)) ? minValue : value ;
146
+ }) ;
147
+ } ;
148
+
149
+ You could specify this in your core.js file, for example. Then anywhere in
158
150
  your application you can use it to define bindings like so:
159
-
160
- {{{
161
- valueBinding: SC.Binding.from("MyApp.someController.value").notLessThan(10)
162
- }}}
163
-
151
+
152
+ valueBinding: SC.Binding.from("MyApp.someController.value").notLessThan(10)
153
+
164
154
  Also, remember that helpers are chained so you can use your helper along with
165
- any other helpers. The example below will create a one way binding that
155
+ any other helpers. The example below will create a one way binding that
166
156
  does not allow empty values or values less than 10:
167
-
168
- {{{
169
- valueBinding: SC.Binding.oneWay("MyApp.someController.value").notEmpty().notLessThan(10)
170
- }}}
171
-
172
- Note that the built in helper methods all allow you to pass a "from"
173
- property path so you don't have to use the from() helper to set the path.
174
- You can do the same thing with your own helper methods if you like, but it
157
+
158
+ valueBinding: SC.Binding.oneWay("MyApp.someController.value").notEmpty().notLessThan(10)
159
+
160
+ Note that the built in helper methods all allow you to pass a "from"
161
+ property path so you don't have to use the from() helper to set the path.
162
+ You can do the same thing with your own helper methods if you like, but it
175
163
  is not required.
176
-
177
- h2. Creating Custom Binding Templates
178
-
164
+
165
+ Creating Custom Binding Templates
166
+ ===
167
+
179
168
  Another way you can customize bindings is to create a binding template. A
180
- template is simply a binding that is already partially or completely
181
- configured. You can specify this template anywhere in your app and then use
169
+ template is simply a binding that is already partially or completely
170
+ configured. You can specify this template anywhere in your app and then use
182
171
  it instead of designating your own custom bindings. This is a bit faster on
183
172
  app startup but it is mostly useful in making your code less verbose.
184
-
185
- For example, let's say you will be frequently creating one way, not empty
173
+
174
+ For example, let's say you will be frequently creating one way, not empty
186
175
  bindings that allow values greater than 10 throughout your app. You could
187
176
  create a binding template in your core.js like this:
188
-
189
- {{{
190
- MyApp.LimitBinding = SC.Binding.oneWay().notEmpty().notLessThan(10);
191
- }}}
192
-
193
- Then anywhere you want to use this binding, just refer to the template like
177
+
178
+ MyApp.LimitBinding = SC.Binding.oneWay().notEmpty().notLessThan(10);
179
+
180
+ Then anywhere you want to use this binding, just refer to the template like
194
181
  so:
195
182
 
196
- {{{
197
- valueBinding: MyApp.LimitBinding.beget("MyApp.someController.value")
198
- }}}
199
-
200
- Note that when you use binding templates, it is very important that you
201
- always start by using beget() to extend the template. If you do not do
202
- this, you will end up using the same binding instance throughout your app
183
+ valueBinding: MyApp.LimitBinding.beget("MyApp.someController.value")
184
+
185
+ Note that when you use binding templates, it is very important that you
186
+ always start by using beget() to extend the template. If you do not do
187
+ this, you will end up using the same binding instance throughout your app
203
188
  which will lead to erratic behavior.
204
-
205
- h2. How to Manually Activate a Binding
206
189
 
207
- All of the examples above show you how to configure a custom binding, but
208
- the result of these customizations will be a binding template, not a fully
209
- active binding. The binding will actually become active only when you
210
- instantiate the object the binding belongs to. It is useful however, to
190
+ How to Manually Activate a Binding
191
+ ===
192
+
193
+ All of the examples above show you how to configure a custom binding, but
194
+ the result of these customizations will be a binding template, not a fully
195
+ active binding. The binding will actually become active only when you
196
+ instantiate the object the binding belongs to. It is useful however, to
211
197
  understand what actually happens when the binding is activated.
212
-
198
+
213
199
  For a binding to function it must have at least a "from" property and a "to"
214
200
  property. The from property path points to the object/key that you want to
215
- bind from while the to path points to the object/key you want to bind to.
216
-
217
- When you define a custom binding, you are usually describing the property
201
+ bind from while the to path points to the object/key you want to bind to.
202
+
203
+ When you define a custom binding, you are usually describing the property
218
204
  you want to bind from (such as "MyApp.someController.value" in the examples
219
205
  above). When your object is created, it will automatically assign the value
220
- you want to bind "to" based on the name of your binding key. In the
221
- examples above, during init, SproutCore objects will effectively call
206
+ you want to bind "to" based on the name of your binding key. In the
207
+ examples above, during init, SproutCore objects will effectively call
222
208
  something like this on your binding:
223
-
224
- {{{
225
- binding = this.valueBinding.beget().to("value", this) ;
226
- }}}
227
-
228
- This creates a new binding instance based on the template you provide, and
229
- sets the to path to the "value" property of the new object. Now that the
209
+
210
+ binding = this.valueBinding.beget().to("value", this) ;
211
+
212
+ This creates a new binding instance based on the template you provide, and
213
+ sets the to path to the "value" property of the new object. Now that the
230
214
  binding is fully configured with a "from" and a "to", it simply needs to be
231
215
  connected to become active. This is done through the connect() method:
232
-
233
- {{{
234
- binding.connect() ;
235
- }}}
236
-
237
- Now that the binding is connected, it will observe both the from and to side
216
+
217
+ binding.connect() ;
218
+
219
+ Now that the binding is connected, it will observe both the from and to side
238
220
  and relay changes.
239
-
240
- If you ever needed to do so (you almost never will, but it is useful to
241
- understand this anyway), you could manually create an active binding by
221
+
222
+ If you ever needed to do so (you almost never will, but it is useful to
223
+ understand this anyway), you could manually create an active binding by
242
224
  doing the following:
243
-
244
- {{{
245
- SC.Binding.from("MyApp.someController.value")
246
- .to("MyApp.anotherObject.value")
247
- .connect();
248
- }}}
249
-
250
- You could also use the bind() helper method provided by SC.Object. (This is
225
+
226
+ SC.Binding.from("MyApp.someController.value")
227
+ .to("MyApp.anotherObject.value")
228
+ .connect();
229
+
230
+ You could also use the bind() helper method provided by SC.Object. (This is
251
231
  the same method used by SC.Object.init() to setup your bindings):
252
-
253
- {{{
254
- MyApp.anotherObject.bind("value", "MyApp.someController.value") ;
255
- }}}
232
+
233
+ MyApp.anotherObject.bind("value", "MyApp.someController.value") ;
256
234
 
257
235
  Both of these code fragments have the same effect as doing the most friendly
258
236
  form of binding creation like so:
259
-
260
- {{{
261
- MyApp.anotherObject = SC.Object.create({
262
- valueBinding: "MyApp.someController.value",
263
-
264
- // OTHER CODE FOR THIS OBJECT...
265
-
266
- }) ;
267
- }}}
268
-
237
+
238
+
239
+ MyApp.anotherObject = SC.Object.create({
240
+ valueBinding: "MyApp.someController.value",
241
+
242
+ // OTHER CODE FOR THIS OBJECT...
243
+
244
+ }) ;
245
+
269
246
  SproutCore's built in binding creation method make it easy to automatically
270
- create bindings for you. You should always use the highest-level APIs
247
+ create bindings for you. You should always use the highest-level APIs
271
248
  available, even if you understand how to it works underneath.
272
-
249
+
273
250
  @since SproutCore 1.0
274
251
  */
275
- SC.Binding = {
276
-
252
+ SC.Binding = /** @scope SC.Binding.prototype */{
253
+
277
254
  /**
278
255
  This is the core method you use to create a new binding instance. The
279
256
  binding instance will have the receiver instance as its parent which means
280
- any configuration you have there will be inherited.
281
-
282
- The returned instance will also have its parentBinding property set to the
257
+ any configuration you have there will be inherited.
258
+
259
+ The returned instance will also have its parentBinding property set to the
283
260
  receiver.
284
261
 
285
- @param fromPath {String} optional from path.
262
+ @param {String} fromPath optional from path.
286
263
  @returns {SC.Binding} new binding instance
287
264
  */
288
265
  beget: function(fromPath) {
@@ -291,9 +268,9 @@ SC.Binding = {
291
268
  if (fromPath !== undefined) ret = ret.from(fromPath) ;
292
269
  return ret ;
293
270
  },
294
-
271
+
295
272
  /**
296
- Returns a builder function for compatibility.
273
+ Returns a builder function for compatibility.
297
274
  */
298
275
  builder: function() {
299
276
  var binding = this,
@@ -301,29 +278,29 @@ SC.Binding = {
301
278
  ret.beget = function() { return binding.beget(); } ;
302
279
  return ret ;
303
280
  },
304
-
281
+
305
282
  /**
306
283
  This will set "from" property path to the specified value. It will not
307
284
  attempt to resolve this property path to an actual object/property tuple
308
285
  until you connect the binding.
309
286
 
310
- The binding will search for the property path starting at the root level
311
- unless you specify an alternate root object as the second paramter to this
287
+ The binding will search for the property path starting at the root level
288
+ unless you specify an alternate root object as the second paramter to this
312
289
  method. Alternatively, you can begin your property path with either "." or
313
290
  "*", which will use the root object of the to side be default. This special
314
291
  behavior is used to support the high-level API provided by SC.Object.
315
-
316
- @param propertyPath {String|Tuple} A property path or tuple
317
- @param root {Object} optional root object to use when resolving the path.
292
+
293
+ @param {String|Tuple} propertyPath A property path or tuple
294
+ @param {Object} root optional root object to use when resolving the path.
318
295
  @returns {SC.Binding} this
319
296
  */
320
297
  from: function(propertyPath, root) {
321
-
298
+
322
299
  // if the propertyPath is null/undefined, return this. This allows the
323
- // method to be called from other methods when the fromPath might be
300
+ // method to be called from other methods when the fromPath might be
324
301
  // optional. (cf single(), multiple())
325
302
  if (!propertyPath) return this ;
326
-
303
+
327
304
  // beget if needed.
328
305
  var binding = (this === SC.Binding) ? this.beget() : this ;
329
306
  binding._fromPropertyPath = propertyPath ;
@@ -331,14 +308,14 @@ SC.Binding = {
331
308
  binding._fromTuple = null ;
332
309
  return binding ;
333
310
  },
334
-
311
+
335
312
  /**
336
- This will set the "to" property path to the specified value. It will not
313
+ This will set the "to" property path to the specified value. It will not
337
314
  attempt to reoslve this property path to an actual object/property tuple
338
315
  until you connect the binding.
339
-
340
- @param propertyPath {String|Tuple} A property path or tuple
341
- @param root {Object} optional root object to use when resolving the path.
316
+
317
+ @param {String|Tuple} propertyPath A property path or tuple
318
+ @param {Object} root optional root object to use when resolving the path.
342
319
  @returns {SC.Binding} this
343
320
  */
344
321
  to: function(propertyPath, root) {
@@ -352,24 +329,30 @@ SC.Binding = {
352
329
 
353
330
  /**
354
331
  Attempts to connect this binding instance so that it can receive and relay
355
- changes. This method will raise an exception if you have not set the
332
+ changes. This method will raise an exception if you have not set the
356
333
  from/to properties yet.
357
-
334
+
358
335
  @returns {SC.Binding} this
359
336
  */
360
337
  connect: function() {
361
338
  // If the binding is already connected, do nothing.
362
339
  if (this.isConnected) return this ;
363
340
  this.isConnected = YES ;
364
- this._connectionPending = YES ; // its connected but not really...
341
+ this._connectionPending = YES ; // its connected but not really...
365
342
  this._syncOnConnect = YES ;
343
+
366
344
  SC.Binding._connectQueue.add(this) ;
367
- return this;
345
+
346
+ if (!SC.RunLoop.isRunLoopInProgress()) {
347
+ this._scheduleSync();
348
+ }
349
+
350
+ return this;
368
351
  },
369
-
352
+
370
353
  /** @private
371
354
  Actually connects the binding. This is done at the end of the runloop
372
- to give you time to setup your entire object graph before the bindings
355
+ to give you time to setup your entire object graph before the bindings
373
356
  try to activate.
374
357
  */
375
358
  _connect: function() {
@@ -380,25 +363,25 @@ SC.Binding = {
380
363
  bench = SC.BENCHMARK_BINDING_SETUP;
381
364
 
382
365
  if (bench) SC.Benchmark.start("SC.Binding.connect()");
383
-
366
+
384
367
  // try to connect the from side.
385
- // as a special behavior, if the from property path begins with either a
386
- // . or * and the fromRoot is null, use the toRoot instead. This allows
368
+ // as a special behavior, if the from property path begins with either a
369
+ // . or * and the fromRoot is null, use the toRoot instead. This allows
387
370
  // for support for the SC.Object shorthand:
388
371
  //
389
372
  // contentBinding: "*owner.value"
390
373
  //
391
374
  path = this._fromPropertyPath; root = this._fromRoot ;
392
-
375
+
393
376
  if (typeof path === "string") {
394
-
395
- // if the first character is a '.', this is a static path. make the
377
+
378
+ // if the first character is a '.', this is a static path. make the
396
379
  // toRoot the default root.
397
380
  if (path.indexOf('.') === 0) {
398
381
  path = path.slice(1);
399
382
  if (!root) root = this._toRoot ;
400
-
401
- // if the first character is a '*', then setup a tuple since this is a
383
+
384
+ // if the first character is a '*', then setup a tuple since this is a
402
385
  // chained path.
403
386
  } else if (path.indexOf('*') === 0) {
404
387
  path = [this._fromRoot || this._toRoot, path.slice(1)] ;
@@ -407,7 +390,7 @@ SC.Binding = {
407
390
  }
408
391
  this._fromObserverData = [path, this, this.fromPropertyDidChange, root];
409
392
  SC.Observers.addObserver.apply(SC.Observers, this._fromObserverData);
410
-
393
+
411
394
  // try to connect the to side
412
395
  if (!this._oneWay) {
413
396
  path = this._toPropertyPath; root = this._toRoot ;
@@ -425,20 +408,20 @@ SC.Binding = {
425
408
  if (bench) SC.Benchmark.end("SC.Binding.connect().sync");
426
409
  }
427
410
  },
428
-
411
+
429
412
  /**
430
413
  Disconnects the binding instance. Changes will no longer be relayed. You
431
414
  will not usually need to call this method.
432
-
415
+
433
416
  @returns {SC.Binding} this
434
417
  */
435
418
  disconnect: function() {
436
419
  if (!this.isConnected) return this; // nothing to do.
437
-
420
+
438
421
  // if connection is still pending, just cancel
439
422
  if (this._connectionPending) {
440
423
  this._connectionPending = NO ;
441
-
424
+
442
425
  // connection is completed, disconnect.
443
426
  } else {
444
427
  SC.Observers.removeObserver.apply(SC.Observers, this._fromObserverData);
@@ -446,54 +429,73 @@ SC.Binding = {
446
429
  SC.Observers.removeObserver.apply(SC.Observers, this._toObserverData);
447
430
  }
448
431
  }
449
-
432
+
450
433
  this.isConnected = NO ;
451
- return this ;
434
+ return this ;
452
435
  },
453
436
 
454
437
  /**
455
438
  Invoked whenever the value of the "from" property changes. This will mark
456
439
  the binding as dirty if the value has changed.
440
+
441
+ @param {Object} target The object that contains the key
442
+ @param {String} key The name of the property which changed
457
443
  */
458
444
  fromPropertyDidChange: function(target, key) {
459
445
  var v = target ? target.get(key) : null;
460
446
 
461
447
  //console.log("fromPropertyDidChange: %@ v = %@".fmt(this, v)) ;
462
-
463
- // if the new value is different from the current binding value, then
448
+
449
+ // if the new value is different from the current binding value, then
464
450
  // schedule to register an update.
465
451
  if (v !== this._bindingValue || key === '[]') {
466
452
 
467
453
  this._setBindingValue(target, key) ;
468
454
  this._changePending = YES ;
469
- SC.Binding._changeQueue.add(this) ; // save for later.
455
+ SC.Binding._changeQueue.add(this) ; // save for later.
456
+
457
+ this._scheduleSync();
470
458
  }
471
459
  },
472
460
 
473
461
  /**
474
462
  Invoked whenever the value of the "to" property changes. This will mark the
475
463
  binding as dirty only if:
476
-
464
+
477
465
  - the binding is not one way
478
466
  - the value does not match the stored transformedBindingValue
467
+
468
+ if the value does not match the transformedBindingValue, then it will
469
+ become the new bindingValue.
479
470
 
480
- if the value does not match the transformedBindingValue, then it will
481
- become the new bindingValue.
471
+ @param {Object} target The object that contains the key
472
+ @param {String} key The name of the property which changed
482
473
  */
483
474
  toPropertyDidChange: function(target, key) {
484
475
  if (this._oneWay) return; // nothing to do
485
-
476
+
486
477
  var v = target.get(key) ;
487
-
488
- // if the new value is different from the current binding value, then
478
+
479
+ // if the new value is different from the current binding value, then
489
480
  // schedule to register an update.
490
481
  if (v !== this._transformedBindingValue) {
491
482
  this._setBindingValue(target, key) ;
492
483
  this._changePending = YES ;
493
- SC.Binding._changeQueue.add(this) ; // save for later.
484
+ SC.Binding._changeQueue.add(this) ; // save for later.
485
+
486
+ this._scheduleSync();
494
487
  }
495
488
  },
496
-
489
+
490
+ _scheduleSync: function() {
491
+ if (SC.RunLoop.isRunLoopInProgress() || this._syncScheduled) { return; }
492
+
493
+ this._syncScheduled = YES;
494
+ var self = this;
495
+
496
+ setTimeout(function() { SC.run(); self._syncScheduled = NO; }, 1);
497
+ },
498
+
497
499
  /** @private
498
500
  Saves the source location for the binding value. This will be used later
499
501
  to actually update the binding value.
@@ -502,8 +504,8 @@ SC.Binding = {
502
504
  this._bindingSource = source;
503
505
  this._bindingKey = key;
504
506
  },
505
-
506
- /** @private
507
+
508
+ /** @private
507
509
  Updates the binding value from the current binding source if needed. This
508
510
  should be called just before using this._bindingValue.
509
511
  */
@@ -511,9 +513,9 @@ SC.Binding = {
511
513
  var source = this._bindingSource,
512
514
  key = this._bindingKey,
513
515
  v, idx;
514
-
516
+
515
517
  this._bindingValue = v = (source ? source.getPath(key) : null);
516
-
518
+
517
519
  // apply any transforms to get the to property value also
518
520
  var transforms = this._transforms;
519
521
  if (transforms) {
@@ -528,10 +530,10 @@ SC.Binding = {
528
530
  // if error objects are not allowed, and the value is an error, then
529
531
  // change it to null.
530
532
  if (this._noError && SC.typeOf(v) === SC.T_ERROR) v = null ;
531
-
533
+
532
534
  this._transformedBindingValue = v;
533
535
  },
534
-
536
+
535
537
  _connectQueue: SC.CoreSet.create(),
536
538
  _alternateConnectQueue: SC.CoreSet.create(),
537
539
  _changeQueue: SC.CoreSet.create(),
@@ -540,13 +542,13 @@ SC.Binding = {
540
542
 
541
543
  /**
542
544
  Call this method on SC.Binding to flush all bindings with changed pending.
543
-
545
+
544
546
  @returns {Boolean} YES if changes were flushed.
545
547
  */
546
548
  flushPendingChanges: function() {
547
-
549
+
548
550
  // don't allow flushing more than one at a time
549
- if (this._isFlushing) return NO;
551
+ if (this._isFlushing) return NO;
550
552
  this._isFlushing = YES ;
551
553
  SC.Observers.suspendPropertyObserving();
552
554
 
@@ -559,38 +561,38 @@ SC.Binding = {
559
561
  this._alternateConnectQueue = queue ;
560
562
  while(binding = queue.pop()) binding._connect() ;
561
563
  }
562
-
564
+
563
565
  // loop through the changed queue...
564
566
  while ((queue = this._changeQueue).length > 0) {
565
- if (log) console.log("Begin: Trigger changed bindings") ;
566
-
567
+ if (log) SC.Logger.log("Begin: Trigger changed bindings") ;
568
+
567
569
  didFlush = YES ;
568
-
570
+
569
571
  // first, swap the change queues. This way any binding changes that
570
572
  // happen while we flush the current queue can be queued up.
571
573
  this._changeQueue = this._alternateChangeQueue ;
572
574
  this._alternateChangeQueue = queue ;
573
-
574
- // next, apply any bindings in the current queue. This may cause
575
- // additional bindings to trigger, which will end up in the new active
575
+
576
+ // next, apply any bindings in the current queue. This may cause
577
+ // additional bindings to trigger, which will end up in the new active
576
578
  // queue.
577
579
  while(binding = queue.pop()) binding.applyBindingValue() ;
578
-
580
+
579
581
  // now loop back and see if there are additional changes pending in the
580
- // active queue. Repeat this until all bindings that need to trigger
582
+ // active queue. Repeat this until all bindings that need to trigger
581
583
  // have triggered.
582
- if (log) console.log("End: Trigger changed bindings") ;
584
+ if (log) SC.Logger.log("End: Trigger changed bindings") ;
583
585
  }
584
-
586
+
585
587
  // clean up
586
588
  this._isFlushing = NO ;
587
589
  SC.Observers.resumePropertyObserving();
588
590
 
589
591
  return didFlush ;
590
592
  },
591
-
593
+
592
594
  /**
593
- This method is called at the end of the Run Loop to relay the changed
595
+ This method is called at the end of the Run Loop to relay the changed
594
596
  binding value from one side to the other.
595
597
  */
596
598
  applyBindingValue: function() {
@@ -599,24 +601,24 @@ SC.Binding = {
599
601
  // compute the binding targets if needed.
600
602
  this._computeBindingTargets() ;
601
603
  this._computeBindingValue();
602
-
604
+
603
605
  var v = this._bindingValue,
604
606
  tv = this._transformedBindingValue,
605
607
  bench = SC.BENCHMARK_BINDING_NOTIFICATIONS,
606
- log = SC.LOG_BINDINGS ;
607
-
608
- // the from property value will always be the binding value, update if
608
+ log = SC.LOG_BINDINGS ;
609
+
610
+ // the from property value will always be the binding value, update if
609
611
  // needed.
610
612
  if (!this._oneWay && this._fromTarget) {
611
- if (log) console.log("%@: %@ -> %@".fmt(this, v, tv)) ;
613
+ if (log) SC.Logger.log("%@: %@ -> %@".fmt(this, v, tv)) ;
612
614
  if (bench) SC.Benchmark.start(this.toString() + "->") ;
613
615
  this._fromTarget.setPathIfChanged(this._fromPropertyKey, v) ;
614
616
  if (bench) SC.Benchmark.end(this.toString() + "->") ;
615
617
  }
616
-
618
+
617
619
  // update the to value with the transformed value if needed.
618
620
  if (this._toTarget) {
619
- if (log) console.log("%@: %@ <- %@".fmt(this, v, tv)) ;
621
+ if (log) SC.Logger.log("%@: %@ <- %@".fmt(this, v, tv)) ;
620
622
  if (bench) SC.Benchmark.start(this.toString() + "<-") ;
621
623
  this._toTarget.setPathIfChanged(this._toPropertyKey, tv) ;
622
624
  if (bench) SC.Benchmark.start(this.toString() + "<-") ;
@@ -624,23 +626,23 @@ SC.Binding = {
624
626
  },
625
627
 
626
628
  /**
627
- Calling this method on a binding will cause it to check the value of the
628
- from side of the binding matches the current expected value of the
629
- binding. If not, it will relay the change as if the from side's value has
629
+ Calling this method on a binding will cause it to check the value of the
630
+ from side of the binding matches the current expected value of the
631
+ binding. If not, it will relay the change as if the from side's value has
630
632
  just changed.
631
-
632
- This method is useful when you are dynamically connecting bindings to a
633
+
634
+ This method is useful when you are dynamically connecting bindings to a
633
635
  network of objects that may have already been initialized.
634
636
  */
635
637
  sync: function() {
636
638
 
637
639
  // do nothing if not connected
638
640
  if (!this.isConnected) return this;
639
-
641
+
640
642
  // connection is pending, just note that we should sync also
641
643
  if (this._connectionPending) {
642
644
  this._syncOnConnect = YES ;
643
-
645
+
644
646
  // we are connected, go ahead and sync
645
647
  } else {
646
648
  this._computeBindingTargets() ;
@@ -648,47 +650,59 @@ SC.Binding = {
648
650
  key = this._fromPropertyKey ;
649
651
  if (!target || !key) return this ; // nothing to do
650
652
 
653
+ // in debug, let's check for whether target is a valid observable with getPath.
654
+ // Common cases might have it be a Window or a DOM object.
655
+ //
656
+ // If we have a target, it is ready, but if it is invalid, that is WRONG.
657
+ //
658
+ // @if (debug)
659
+ if (!target.isObservable) {
660
+ SC.Logger.warn("Cannot bind '%@' to property '%@' on non-observable '%@'".fmt(this._toPropertyPath, key, target));
661
+ return this;
662
+ }
663
+ // @endif
664
+
651
665
  // get the new value
652
666
  var v = target.getPath(key) ;
653
667
 
654
- // if the new value is different from the current binding value, then
668
+ // if the new value is different from the current binding value, then
655
669
  // schedule to register an update.
656
670
  if (v !== this._bindingValue || key === '[]') {
657
671
  this._setBindingValue(target, key) ;
658
672
  this._changePending = YES ;
659
- SC.Binding._changeQueue.add(this) ; // save for later.
673
+ SC.Binding._changeQueue.add(this) ; // save for later.
660
674
  }
661
675
  }
662
-
676
+
663
677
  return this ;
664
678
  },
665
-
679
+
666
680
  // set if you call sync() when the binding connection is still pending.
667
681
  _syncOnConnect: NO,
668
-
682
+
669
683
  _computeBindingTargets: function() {
670
684
  if (!this._fromTarget) {
671
685
 
672
686
  var path, root, tuple ;
673
-
674
- // if the fromPropertyPath begins with a . or * then we may use the
675
- // toRoot as the root object. Similar code exists in connect() so if
687
+
688
+ // if the fromPropertyPath begins with a . or * then we may use the
689
+ // toRoot as the root object. Similar code exists in connect() so if
676
690
  // you make a change to one be sure to update the other.
677
691
  path = this._fromPropertyPath; root = this._fromRoot ;
678
692
  if (typeof path === "string") {
679
-
693
+
680
694
  // static path beginning with the toRoot
681
695
  if (path.indexOf('.') === 0) {
682
696
  path = path.slice(1) ; // remove the .
683
697
  if (!root) root = this._toRoot; // use the toRoot optionally
684
-
698
+
685
699
  // chained path beginning with toRoot. Setup a tuple
686
700
  } else if (path.indexOf('*') === 0) {
687
701
  path = [root || this._toRoot, path.slice(1)];
688
702
  root = null ;
689
703
  }
690
704
  }
691
-
705
+
692
706
  tuple = SC.tupleForPropertyPath(path, root) ;
693
707
  if (tuple) {
694
708
  this._fromTarget = tuple[0]; this._fromPropertyKey = tuple[1] ;
@@ -703,88 +717,86 @@ SC.Binding = {
703
717
  }
704
718
  }
705
719
  },
706
-
720
+
707
721
  /**
708
722
  Configures the binding as one way. A one-way binding will relay changes
709
723
  on the "from" side to the "to" side, but not the other way around. This
710
- means that if you change the "to" side directly, the "from" side may have
724
+ means that if you change the "to" side directly, the "from" side may have
711
725
  a different value.
712
-
713
- @param fromPath {String} optional from path to connect.
714
- @param aFlag {Boolean} Optionally pass NO to set the binding back to two-way
726
+
727
+ @param {String} fromPath optional from path to connect.
728
+ @param {Boolean} aFlag Optionally pass NO to set the binding back to two-way
715
729
  @returns {SC.Binding} this
716
730
  */
717
731
  oneWay: function(fromPath, aFlag) {
718
-
732
+
719
733
  // If fromPath is a bool but aFlag is undefined, swap.
720
734
  if ((aFlag === undefined) && (SC.typeOf(fromPath) === SC.T_BOOL)) {
721
735
  aFlag = fromPath; fromPath = null ;
722
736
  }
723
-
737
+
724
738
  // beget if needed.
725
739
  var binding = this.from(fromPath) ;
726
740
  if (binding === SC.Binding) binding = binding.beget() ;
727
741
  binding._oneWay = (aFlag === undefined) ? YES : aFlag ;
728
742
  return binding ;
729
743
  },
730
-
744
+
731
745
  /**
732
746
  Adds the specified transform function to the array of transform functions.
733
-
747
+
734
748
  The function you pass must have the following signature:
735
-
736
- {{{
737
- function(value) {} ;
738
- }}}
739
-
740
- It must return either the transformed value or an error object.
741
-
749
+
750
+ function(value) {} ;
751
+
752
+ It must return either the transformed value or an error object.
753
+
742
754
  Transform functions are chained, so they are called in order. If you are
743
755
  extending a binding and want to reset the transforms, you can call
744
756
  resetTransform() first.
745
-
746
- @param transformFunc {Function} the transform function.
757
+
758
+ @param {Function} transformFunc the transform function.
747
759
  @returns {SC.Binding} this
748
760
  */
749
761
  transform: function(transformFunc) {
750
762
  var binding = (this === SC.Binding) ? this.beget() : this ;
751
763
  var t = binding._transforms ;
752
-
764
+
753
765
  // clone the transform array if this comes from the parent
754
766
  if (t && (t === binding.parentBinding._transform)) {
755
767
  t = binding._transforms = t.slice() ;
756
768
  }
757
-
769
+
758
770
  // create the transform array if needed.
759
771
  if (!t) t = binding._transforms = [] ;
760
-
772
+
761
773
  // add the transform function
762
774
  t.push(transformFunc) ;
763
775
  return binding;
764
776
  },
765
-
777
+
766
778
  /**
767
- Resets the transforms for the binding. After calling this method the
779
+ Resets the transforms for the binding. After calling this method the
768
780
  binding will no longer transform values. You can then add new transforms
769
781
  as needed.
770
-
782
+
771
783
  @returns {SC.Binding} this
772
784
  */
773
785
  resetTransforms: function() {
774
786
  var binding = (this === SC.Binding) ? this.beget() : this ;
775
787
  binding._transforms = null ; return binding ;
776
788
  },
777
-
789
+
778
790
  /**
779
791
  Specifies that the binding should not return error objects. If the value
780
792
  of a binding is an Error object, it will be transformed to a null value
781
793
  instead.
782
-
794
+
783
795
  Note that this is not a transform function since it will be called at the
784
796
  end of the transform chain.
785
-
786
- @param fromPath {String} optional from path to connect.
787
- @param aFlag {Boolean} optionally pass NO to allow error objects again.
797
+
798
+ @param {String} fromPath optional from path to connect.
799
+ @param {Boolean} aFlag optionally pass NO to allow error objects again.
788
800
  @returns {SC.Binding} this
789
801
  */
790
802
  noError: function(fromPath, aFlag) {
@@ -792,33 +804,31 @@ SC.Binding = {
792
804
  if ((aFlag === undefined) && (SC.typeOf(fromPath) === SC.T_BOOL)) {
793
805
  aFlag = fromPath; fromPath = null ;
794
806
  }
795
-
807
+
796
808
  // beget if needed.
797
809
  var binding = this.from(fromPath) ;
798
810
  if (binding === SC.Binding) binding = binding.beget() ;
799
811
  binding._noError = (aFlag === undefined) ? YES : aFlag ;
800
812
  return binding ;
801
813
  },
802
-
814
+
803
815
  /**
804
816
  Adds a transform to the chain that will allow only single values to pass.
805
817
  This will allow single values, nulls, and error values to pass through. If
806
818
  you pass an array, it will be mapped as so:
807
-
808
- {{{
809
- [] => null
810
- [a] => a
811
- [a,b,c] => Multiple Placeholder
812
- }}}
813
-
814
- You can pass in an optional multiple placeholder or it will use the
819
+
820
+ [] => null
821
+ [a] => a
822
+ [a,b,c] => Multiple Placeholder
823
+
824
+ You can pass in an optional multiple placeholder or it will use the
815
825
  default.
816
-
826
+
817
827
  Note that this transform will only happen on forwarded valued. Reverse
818
828
  values are send unchanged.
819
-
820
- @param fromPath {String} from path or null
821
- @param placeholder {Object} optional placeholder value.
829
+
830
+ @param {String} fromPath from path or null
831
+ @param {Object} placeholder optional placeholder value.
822
832
  @returns {SC.Binding} this
823
833
  */
824
834
  single: function(fromPath, placeholder) {
@@ -833,13 +843,13 @@ SC.Binding = {
833
843
  return value ;
834
844
  }) ;
835
845
  },
836
-
837
- /**
838
- Adds a transform that will return the placeholder value if the value is
846
+
847
+ /**
848
+ Adds a transform that will return the placeholder value if the value is
839
849
  null, undefined, an empty array or an empty string. See also notNull().
840
-
841
- @param fromPath {String} from path or null
842
- @param placeholder {Object} optional placeholder.
850
+
851
+ @param {String} fromPath from path or null
852
+ @param {Object} placeholder optional placeholder.
843
853
  @returns {SC.Binding} this
844
854
  */
845
855
  notEmpty: function(fromPath, placeholder) {
@@ -851,13 +861,13 @@ SC.Binding = {
851
861
  return value ;
852
862
  }) ;
853
863
  },
854
-
864
+
855
865
  /**
856
866
  Adds a transform that will return the placeholder value if the value is
857
- null. Otherwise it will passthrough untouched. See also notEmpty().
858
-
859
- @param fromPath {String} from path or null
860
- @param placeholder {Object} optional placeholder;
867
+ null or undefined. Otherwise it will passthrough untouched. See also notEmpty().
868
+
869
+ @param {String} fromPath from path or null
870
+ @param {Object} placeholder optional placeholder;
861
871
  @returns {SC.Binding} this
862
872
  */
863
873
  notNull: function(fromPath, placeholder) {
@@ -868,11 +878,11 @@ SC.Binding = {
868
878
  }) ;
869
879
  },
870
880
 
871
- /**
872
- Adds a transform that will convert the passed value to an array. If
881
+ /**
882
+ Adds a transform that will convert the passed value to an array. If
873
883
  the value is null or undefined, it will be converted to an empty array.
874
884
 
875
- @param fromPath {String} optional from path
885
+ @param {String} fromPath optional from path
876
886
  @returns {SC.Binding} this
877
887
  */
878
888
  multiple: function(fromPath) {
@@ -881,13 +891,13 @@ SC.Binding = {
881
891
  return value ;
882
892
  }) ;
883
893
  },
884
-
894
+
885
895
  /**
886
896
  Adds a transform to convert the value to a bool value. If the value is
887
897
  an array it will return YES if array is not empty. If the value is a string
888
898
  it will return YES if the string is not empty.
889
-
890
- @param fromPath {String} optional from path
899
+
900
+ @param {String} fromPath optional from path
891
901
  @returns {SC.Binding} this
892
902
  */
893
903
  bool: function(fromPath) {
@@ -902,16 +912,18 @@ SC.Binding = {
902
912
  Adds a transform that forwards the logical 'AND' of values at 'pathA' and
903
913
  'pathB' whenever either source changes. Note that the transform acts strictly
904
914
  as a one-way binding, working only in the direction
905
-
915
+
906
916
  'pathA' AND 'pathB' --> value (value returned is the result of ('pathA' && 'pathB'))
907
917
 
908
918
  Usage example where a delete button's 'isEnabled' value is determined by whether
909
919
  something is selected in a list and whether the current user is allowed to delete:
910
-
920
+
911
921
  deleteButton: SC.ButtonView.design({
912
922
  isEnabledBinding: SC.Binding.and('MyApp.itemsController.hasSelection', 'MyApp.userController.canDelete')
913
923
  })
914
924
 
925
+ @param {String} pathA The first part of the conditional
926
+ @param {String} pathB The second part of the conditional
915
927
  */
916
928
  and: function(pathA, pathB) {
917
929
 
@@ -936,27 +948,29 @@ SC.Binding = {
936
948
 
937
949
  'pathA' AND 'pathB' --> value (value returned is the result of ('pathA' || 'pathB'))
938
950
 
951
+ @param {String} pathA The first part of the conditional
952
+ @param {String} pathB The second part of the conditional
939
953
  */
940
954
  or: function(pathA, pathB) {
941
-
955
+
942
956
  // create an object to the logical computation
943
957
  var gate = SC.Object.create({
944
958
  valueABinding: pathA,
945
959
  valueBBinding: pathB,
946
-
960
+
947
961
  or: function() {
948
962
  return (this.get('valueA') || this.get('valueB'));
949
963
  }.property('valueA', 'valueB').cacheable()
950
964
  });
951
-
965
+
952
966
  return this.from('or', gate).oneWay();
953
967
  },
954
-
968
+
955
969
  /**
956
970
  Adds a transform to convert the value to the inverse of a bool value. This
957
971
  uses the same transform as bool() but inverts it.
958
-
959
- @param fromPath {String} optional from path
972
+
973
+ @param {String} fromPath optional from path
960
974
  @returns {SC.Binding} this
961
975
  */
962
976
  not: function(fromPath) {
@@ -966,35 +980,34 @@ SC.Binding = {
966
980
  return !((t == SC.T_ARRAY) ? (v.length > 0) : (v === '') ? NO : !!v) ;
967
981
  }) ;
968
982
  },
969
-
983
+
970
984
  /**
971
- Adds a transform that will return YES if the value is null, NO otherwise.
985
+ Adds a transform that will return YES if the value is null or undefined, NO otherwise.
972
986
 
987
+ @param {String} fromPath optional from path
973
988
  @returns {SC.Binding} this
974
989
  */
975
990
  isNull: function(fromPath) {
976
- return this.from(fromPath).transform(function(v) {
991
+ return this.from(fromPath).transform(function(v) {
977
992
  var t = SC.typeOf(v) ;
978
993
  return (t === SC.T_ERROR) ? v : SC.none(v) ;
979
994
  });
980
995
  },
981
-
996
+
982
997
  toString: function() {
983
998
  var from = this._fromRoot ? "<%@>:%@".fmt(this._fromRoot,this._fromPropertyPath) : this._fromPropertyPath;
984
999
 
985
1000
  var to = this._toRoot ? "<%@>:%@".fmt(this._toRoot,this._toPropertyPath) : this._toPropertyPath;
986
-
1001
+
987
1002
  var oneWay = this._oneWay ? '[oneWay]' : '';
988
1003
  return "SC.Binding%@(%@ -> %@)%@".fmt(SC.guidFor(this), from, to, oneWay);
989
- }
1004
+ }
990
1005
  } ;
991
1006
 
992
- /**
1007
+ /**
993
1008
  Shorthand method to define a binding. This is the same as calling:
994
-
995
- {{{
996
- SC.binding(path) = SC.Binding.from(path)
997
- }}}
1009
+
1010
+ SC.binding(path) = SC.Binding.from(path)
998
1011
  */
999
1012
  SC.binding = function(path, root) { return SC.Binding.from(path,root); } ;
1000
1013