sproutcore 1.5.0-java → 1.6.0.beta.2-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. data/.mailmap +32 -0
  2. data/CHANGELOG +15 -0
  3. data/Rakefile +18 -0
  4. data/VERSION.yml +2 -2
  5. data/bin/sc-build +0 -5
  6. data/bin/sc-build-number +0 -5
  7. data/bin/sc-docs +0 -5
  8. data/bin/sc-gen +0 -5
  9. data/bin/sc-init +0 -5
  10. data/bin/sc-manifest +0 -5
  11. data/bin/sc-server +0 -5
  12. data/bin/sproutcore +0 -5
  13. data/lib/frameworks/sproutcore/Buildfile +3 -3
  14. data/lib/frameworks/sproutcore/CHANGELOG.md +21 -0
  15. data/lib/frameworks/sproutcore/README.md +77 -7
  16. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +0 -2
  17. data/lib/frameworks/sproutcore/frameworks/animation/core.js +3 -2
  18. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +1 -1
  19. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +1 -17
  20. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +1 -1
  21. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +4 -4
  22. data/lib/frameworks/sproutcore/frameworks/core_foundation/controls/button.js +49 -0
  23. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +23 -21
  24. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +1 -1
  25. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +36 -1
  26. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +126 -7
  27. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +3 -3
  28. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +13 -1
  29. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +2 -2
  30. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +16 -16
  31. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +2 -2
  32. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +1 -34
  33. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +29 -23
  34. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +8 -4
  35. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +20 -23
  36. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controls/button.js +78 -0
  37. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/checkbox_support.js +26 -0
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +115 -1
  39. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +55 -0
  40. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +49 -1
  41. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +19 -1
  42. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +1 -0
  43. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +2 -0
  44. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +38 -41
  45. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +4 -3
  46. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/base.js +1 -0
  47. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +1 -0
  48. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +7 -82
  49. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +12 -5
  50. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +1 -1
  51. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/array_observers.js +82 -0
  52. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +17 -0
  53. data/lib/frameworks/sproutcore/frameworks/debug/core.js +1 -1
  54. data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +1 -1
  55. data/lib/frameworks/sproutcore/frameworks/desktop/core.js +2 -2
  56. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +33 -30
  57. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +12 -11
  58. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +7 -7
  59. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +4 -4
  60. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +20 -20
  61. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +5 -5
  62. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +10 -10
  63. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +24 -23
  64. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +51 -54
  65. data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +3 -3
  66. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +1 -1
  67. data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +29 -29
  68. data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +1 -1
  69. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +3 -3
  70. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +6 -6
  71. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +4 -4
  72. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +5 -5
  73. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +1 -1
  74. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +5 -5
  75. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +7 -7
  76. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +3 -3
  77. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +7 -5
  78. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +31 -31
  79. data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +1 -1
  80. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +35 -29
  81. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +2 -2
  82. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +61 -50
  83. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +9 -2
  84. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +2 -2
  85. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +6 -1
  86. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
  87. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
  88. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/coders/object.js +12 -12
  89. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/designs.js +6 -6
  90. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_files.js +1 -1
  91. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +7 -9
  92. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +13 -13
  93. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +37 -37
  94. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/object.js +3 -2
  95. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/page.js +2 -2
  96. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/view.js +4 -3
  97. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +7 -6
  98. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +3 -3
  99. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +49 -42
  100. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/high_light.js +1 -1
  101. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +6 -6
  102. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +1 -1
  103. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/english.lproj/default_styles.css +0 -0
  104. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/english.lproj/strings.js +0 -0
  105. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/mixins/edit_mode.js +0 -0
  106. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/mixins/emptiness.js +0 -0
  107. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/render_delegates/form.js +0 -0
  108. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/render_delegates/form_row.js +0 -0
  109. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form.js +0 -0
  110. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_checkbox_field.js +0 -0
  111. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_field.js +0 -0
  112. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_label.js +0 -0
  113. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_radio_field.js +0 -0
  114. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_row.js +0 -0
  115. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_text_field.js +0 -0
  116. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/views/form.js +13 -14
  117. data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/views/form_row.js +0 -0
  118. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +4 -6
  119. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +0 -1
  120. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +2 -4
  121. data/lib/frameworks/sproutcore/frameworks/foundation/system/image_queue.js +8 -12
  122. data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +28 -34
  123. data/lib/frameworks/sproutcore/frameworks/{foundation → routing}/system/routes.js +31 -47
  124. data/lib/frameworks/sproutcore/frameworks/{foundation → routing}/tests/system/routes.js +0 -0
  125. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +2 -2
  126. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +15 -21
  127. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +8 -0
  128. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +3 -3
  129. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array_observers.js +23 -0
  130. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +1 -1
  131. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/contains.js +3 -3
  132. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/intersects.js +3 -3
  133. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +66 -133
  134. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +68 -139
  135. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +11 -11
  136. data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +23 -29
  137. data/lib/frameworks/sproutcore/lib/index.rhtml +5 -2
  138. data/lib/sproutcore.rb +2 -9
  139. data/lib/sproutcore/builders/minify.rb +5 -5
  140. data/lib/sproutcore/helpers/minifier.rb +6 -10
  141. data/lib/sproutcore/models/target.rb +2 -2
  142. data/lib/sproutcore/rack/proxy.rb +8 -7
  143. data/lib/sproutcore/tools.rb +16 -5
  144. data/spec/lib/builders/html_spec.rb +5 -5
  145. data/sproutcore.gemspec +11 -5
  146. data/vendor/chance/lib/chance.rb +4 -2
  147. data/{lib/sproutcore/vendor → vendor}/jsdoc/README.txt +0 -0
  148. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame.js +0 -0
  149. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Chain.js +0 -0
  150. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Dumper.js +0 -0
  151. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Hash.js +0 -0
  152. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Link.js +0 -0
  153. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Namespace.js +0 -0
  154. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Opt.js +0 -0
  155. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Reflection.js +0 -0
  156. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/String.js +0 -0
  157. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Testrun.js +0 -0
  158. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/FOODOC.js +0 -0
  159. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/XMLDOC.js +0 -0
  160. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/XMLDOC/DomReader.js +0 -0
  161. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/XMLDOC/XMLDoc.js +0 -0
  162. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/XMLDOC/XMLParse.js +0 -0
  163. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC.js +0 -0
  164. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/DocComment.js +0 -0
  165. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/DocTag.js +0 -0
  166. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/JsDoc.js +0 -0
  167. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/JsPlate.js +0 -0
  168. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Lang.js +0 -0
  169. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Parser.js +0 -0
  170. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/PluginManager.js +0 -0
  171. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Symbol.js +0 -0
  172. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/SymbolSet.js +0 -0
  173. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/TextStream.js +0 -0
  174. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Token.js +0 -0
  175. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/TokenReader.js +0 -0
  176. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/TokenStream.js +0 -0
  177. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Util.js +0 -0
  178. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Walker.js +0 -0
  179. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/main.js +0 -0
  180. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/commentSrcJson.js +0 -0
  181. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/frameworkPrototype.js +0 -0
  182. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/functionCall.js +0 -0
  183. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/publishSrcHilite.js +0 -0
  184. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/sproutcoreTags.js +0 -0
  185. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/symbolLink.js +0 -0
  186. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/tagParamConfig.js +0 -0
  187. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/tagSynonyms.js +0 -0
  188. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/run.js +0 -0
  189. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/t/TestDoc.js +0 -0
  190. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/t/runner.js +0 -0
  191. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test.js +0 -0
  192. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/addon.js +0 -0
  193. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/anon_inner.js +0 -0
  194. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/augments.js +0 -0
  195. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/augments2.js +0 -0
  196. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/borrows.js +0 -0
  197. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/borrows2.js +0 -0
  198. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/config.js +0 -0
  199. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/constructs.js +0 -0
  200. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/encoding.js +0 -0
  201. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/encoding_other.js +0 -0
  202. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/functions_anon.js +0 -0
  203. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/functions_nested.js +0 -0
  204. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/global.js +0 -0
  205. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/globals.js +0 -0
  206. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/ignore.js +0 -0
  207. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/inner.js +0 -0
  208. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/jsdoc_test.js +0 -0
  209. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/lend.js +0 -0
  210. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/memberof.js +0 -0
  211. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/memberof_constructor.js +0 -0
  212. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/name.js +0 -0
  213. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/namespace_nested.js +0 -0
  214. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/nocode.js +0 -0
  215. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/oblit_anon.js +0 -0
  216. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/overview.js +0 -0
  217. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/param_inline.js +0 -0
  218. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/params_optional.js +0 -0
  219. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/prototype.js +0 -0
  220. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/prototype_nested.js +0 -0
  221. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/prototype_oblit.js +0 -0
  222. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/prototype_oblit_constructor.js +0 -0
  223. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/public.js +0 -0
  224. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/shared.js +0 -0
  225. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/shared2.js +0 -0
  226. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/shortcuts.js +0 -0
  227. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/static_this.js +0 -0
  228. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/synonyms.js +0 -0
  229. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/tosource.js +0 -0
  230. data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/variable_redefine.js +0 -0
  231. data/{lib/sproutcore/vendor → vendor}/jsdoc/changes.txt +0 -0
  232. data/{lib/sproutcore/vendor → vendor}/jsdoc/conf/sample.conf +0 -0
  233. data/{lib/sproutcore/vendor → vendor}/jsdoc/java/build.xml +0 -0
  234. data/{lib/sproutcore/vendor → vendor}/jsdoc/java/build_1.4.xml +0 -0
  235. data/{lib/sproutcore/vendor → vendor}/jsdoc/java/classes/js.jar +0 -0
  236. data/{lib/sproutcore/vendor → vendor}/jsdoc/java/src/JsDebugRun.java +0 -0
  237. data/{lib/sproutcore/vendor → vendor}/jsdoc/java/src/JsRun.java +0 -0
  238. data/{lib/sproutcore/vendor → vendor}/jsdoc/jsdebug.jar +0 -0
  239. data/{lib/sproutcore/vendor → vendor}/jsdoc/jsrun.jar +0 -0
  240. data/{lib/sproutcore/vendor → vendor}/jsdoc/t/TestDoc.js +0 -0
  241. data/{lib/sproutcore/vendor → vendor}/jsdoc/t/runner.js +0 -0
  242. data/{lib/sproutcore/vendor → vendor}/jsdoc/test.js +0 -0
  243. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/addon.js +0 -0
  244. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/anon_inner.js +0 -0
  245. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/augments.js +0 -0
  246. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/augments2.js +0 -0
  247. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/borrows.js +0 -0
  248. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/borrows2.js +0 -0
  249. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/config.js +0 -0
  250. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/constructs.js +0 -0
  251. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/encoding.js +0 -0
  252. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/encoding_other.js +0 -0
  253. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/functions_anon.js +0 -0
  254. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/functions_nested.js +0 -0
  255. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/global.js +0 -0
  256. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/globals.js +0 -0
  257. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/ignore.js +0 -0
  258. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/inner.js +0 -0
  259. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/jsdoc_test.js +0 -0
  260. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/lend.js +0 -0
  261. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/memberof.js +0 -0
  262. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/memberof_constructor.js +0 -0
  263. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/name.js +0 -0
  264. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/namespace_nested.js +0 -0
  265. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/nocode.js +0 -0
  266. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/oblit_anon.js +0 -0
  267. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/overview.js +0 -0
  268. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/param_inline.js +0 -0
  269. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/params_optional.js +0 -0
  270. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/prototype.js +0 -0
  271. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/prototype_nested.js +0 -0
  272. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/prototype_oblit.js +0 -0
  273. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/prototype_oblit_constructor.js +0 -0
  274. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/public.js +0 -0
  275. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/shared.js +0 -0
  276. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/shared2.js +0 -0
  277. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/shortcuts.js +0 -0
  278. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/static_this.js +0 -0
  279. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/synonyms.js +0 -0
  280. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/tosource.js +0 -0
  281. data/{lib/sproutcore/vendor → vendor}/jsdoc/test/variable_redefine.js +0 -0
  282. data/vendor/sproutcore/{src/SCCompiler/lib/yuicompressor-2.4.4.jar → lib/yuicompressor-2.4.6.jar} +0 -0
  283. metadata +169 -178
  284. data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +0 -148
  285. data/lib/sproutcore/vendor/github_gem_lint.rb +0 -22
  286. data/vendor/sproutcore/SCCompiler.jar +0 -0
  287. data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
  288. data/vendor/sproutcore/lib/yuicompressor-2.4.2.jar +0 -0
  289. data/vendor/sproutcore/src/SCCompiler/build.xml +0 -74
  290. data/vendor/sproutcore/src/SCCompiler/lib/args4j-2.0.12.jar +0 -0
  291. data/vendor/sproutcore/src/SCCompiler/lib/htmlcompressor-0.9.3.jar +0 -0
  292. data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.2.jar +0 -0
  293. data/vendor/sproutcore/src/SCCompiler/manifest.mf +0 -3
  294. data/vendor/sproutcore/src/SCCompiler/nbproject/build-impl.xml +0 -894
  295. data/vendor/sproutcore/src/SCCompiler/nbproject/genfiles.properties +0 -8
  296. data/vendor/sproutcore/src/SCCompiler/nbproject/private/config.properties +0 -0
  297. data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.properties +0 -10
  298. data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.xml +0 -4
  299. data/vendor/sproutcore/src/SCCompiler/nbproject/project.properties +0 -90
  300. data/vendor/sproutcore/src/SCCompiler/nbproject/project.xml +0 -15
  301. data/vendor/sproutcore/src/SCCompiler/src/com/sproutcore/Main.java +0 -348
@@ -25,25 +25,25 @@ var QUNIT_BREAK_ON_TEST_FAIL = false;
25
25
  wrapper methods. The methods must accept a Plan object as their first
26
26
  parameter.
27
27
 
28
- h2. Results
28
+ ## Results
29
29
 
30
30
  The results hash contains a summary of the results of running the test
31
31
  plan. It includes the following properties:
32
32
 
33
- - *assertions* - the total number of assertions
34
- - *tests* - the total number of tests
35
- - *passed* - number of assertions that passed
36
- - *failed* - number of assertions that failed
37
- - *errors* - number of assertions with errors
38
- - *warnings* - number of assertions with warnings
33
+ - *assertions* -- the total number of assertions
34
+ - *tests* -- the total number of tests
35
+ - *passed* -- number of assertions that passed
36
+ - *failed* -- number of assertions that failed
37
+ - *errors* -- number of assertions with errors
38
+ - *warnings* -- number of assertions with warnings
39
39
 
40
40
  You can also consult the log property, which contains an array of hashes -
41
41
  one for each assertion - with the following properties:
42
42
 
43
- - *module* - module descriptions
44
- - *test* - test description
45
- - *message* - assertion description
46
- - *result* - CoreTest.OK, CoreTest.FAILED, CoreTest.ERROR, CoreTest.WARN
43
+ - *module* -- module descriptions
44
+ - *test* -- test description
45
+ - *message* -- assertion description
46
+ - *result* -- CoreTest.OK, CoreTest.FAILED, CoreTest.ERROR, CoreTest.WARN
47
47
 
48
48
  @since SproutCore 1.0
49
49
  */
@@ -16,7 +16,7 @@
16
16
  types of objects to ensure that both the mixin and the object implementing
17
17
  the mixin use the API properly.
18
18
 
19
- h1. Using a Suite
19
+ ## Using a Suite
20
20
 
21
21
  To use a Suite, call the generate() method on the suite inside on of your
22
22
  unit test files. This will generate new modules and tests in the suite
@@ -27,16 +27,14 @@
27
27
  generate() method. See the documentation on the specific test suite for
28
28
  information on the kind of customizations you may need to provide.
29
29
 
30
- h2. Example
30
+ ### Example
31
31
 
32
- {{{
33
- // generates the SC.ArrayTestSuite tests for a built-in array.
34
- SC.ArrayTests.generate('Array', {
35
- newObject: function() { return []; }
36
- });
37
- }}}
32
+ // generates the SC.ArrayTestSuite tests for a built-in array.
33
+ SC.ArrayTests.generate('Array', {
34
+ newObject: function() { return []; }
35
+ });
38
36
 
39
- h1. Defining a Suite
37
+ ## Defining a Suite
40
38
 
41
39
  To define a test suite, simply call the extend() method, passing any
42
40
  attributs you want to define on the stuie along with this method. You can
@@ -45,24 +43,22 @@
45
43
  Functions you pass to define will have an instance of the test suite passed
46
44
  as their first parameter when invoked.
47
45
 
48
- h2. Example
46
+ ### Example
49
47
 
50
- {{{
51
- SC.ArrayTests = CoreTest.Suite.create("Verify SC.Array compliance", {
48
+ SC.ArrayTests = CoreTest.Suite.create("Verify SC.Array compliance", {
52
49
 
53
- // override to generate a new object that implements SC.Array
54
- newObject: function() { return null; }
55
- });
50
+ // override to generate a new object that implements SC.Array
51
+ newObject: function() { return null; }
52
+ });
56
53
 
57
- SC.ArrayTests.define(function(T) {
58
- T.module("length tests");
54
+ SC.ArrayTests.define(function(T) {
55
+ T.module("length tests");
59
56
 
60
- test("new length", function() {
61
- equals(T.object.get('length'), 0, 'array length');
62
- });
57
+ test("new length", function() {
58
+ equals(T.object.get('length'), 0, 'array length');
59
+ });
63
60
 
64
- });
65
- }}}
61
+ });
66
62
 
67
63
  @since SproutCore 1.0
68
64
 
@@ -206,13 +202,11 @@ CoreTest.Suite = /** @scope CoreTest.Suite.prototype */ {
206
202
  a convenience function for use inside of a definition function. You could
207
203
  do the same thing by calling:
208
204
 
209
- {{{
210
- var T = this ;
211
- module(T.desc(description), {
212
- setup: function() { T.setup(); },
213
- teardown: function() { T.teardown(); }
214
- }
215
- }}}
205
+ var T = this ;
206
+ module(T.desc(description), {
207
+ setup: function() { T.setup(); },
208
+ teardown: function() { T.teardown(); }
209
+ }
216
210
 
217
211
  @param {String} desc detailed descrition
218
212
  @returns {CoreTest.Suite} receiver
@@ -127,9 +127,12 @@
127
127
  # set.
128
128
  -%>
129
129
  <% if config.html5_history %>
130
+ <%# TODO: Can we check for the framework in Ruby instead? %>
130
131
  <script>
131
- SC.routes.wantsHistory = true;
132
- SC.routes.baseURI = <%= "#{@bundle.index_root}/#{language}".to_json %>;
132
+ if (SC.routes) {
133
+ SC.routes.wantsHistory = true;
134
+ SC.routes.baseURI = <%= "#{@bundle.index_root}/#{language}".to_json %>;
135
+ }
133
136
  </script>
134
137
  <% end %>
135
138
  <% #
data/lib/sproutcore.rb CHANGED
@@ -131,18 +131,11 @@ module SproutCore
131
131
 
132
132
  def self.yui_jar
133
133
  @yui_jar ||= begin
134
- yui_root = File.expand_path("../sproutcore/vendor/sproutcore/lib", __FILE__)
135
- File.join(yui_root, 'yuicompressor-2.4.4.jar')
134
+ yui_root = File.expand_path("../../vendor/sproutcore/lib", __FILE__)
135
+ File.join(yui_root, 'yuicompressor-2.4.6.jar')
136
136
  end
137
137
  end
138
138
 
139
- # def self.closure_jar
140
- # @closure_jar ||= begin
141
- # closure_root = File.expand_path("../sproutcore/vendor/sproutcore/lib", __FILE__)
142
- # File.join(closure_root, 'compiler.jar')
143
- # end
144
- # end
145
-
146
139
  def self.profile(env)
147
140
  if ENV[env]
148
141
  require "ruby-prof"
@@ -35,12 +35,12 @@ module SC
35
35
  def build_css(dst_path)
36
36
  a = Regexp.new('^'+MANIFEST.build_root)
37
37
  if dst_path =~ a
38
- # $to_minify << dst_path
38
+ # $to_minify << dst_path
39
39
  FileUtils.mkdir_p(File.dirname(dst_path))
40
40
  FileUtils.copy(entry.source_path, dst_path)
41
41
  else
42
42
  FileUtils.mkdir_p(File.dirname(dst_path)) # make sure loc exists...
43
- filecompress = "java -Xmx128m -jar \"" + SC.yui_jar + "\" --charset utf-8 --line-break 0 --nomunge --preserve-semi --disable-optimizations \"" + entry.source_path + "\" -o \"" + dst_path + "\" 2>&1"
43
+ filecompress = "java -Xmx128m -jar \"" + SC.yui_jar + "\" --type css --charset utf-8 --line-break 0 --nomunge --preserve-semi --disable-optimizations \"" + entry.source_path + "\" -o \"" + dst_path + "\" 2>&1"
44
44
  SC.logger.info 'Compressing CSS with YUI .... '+ dst_path
45
45
  SC.logger.debug `#{filecompress}`
46
46
 
@@ -50,12 +50,12 @@ module SC
50
50
  SC.logger.fatal("!!!!Failed compressing CSS... "+ dst_path)
51
51
  end
52
52
  end
53
- end
53
+ end
54
54
 
55
55
  # Minify some javascript by invoking the YUI compressor.
56
56
  def build_javascript(dst_path)
57
57
  entry.source_entry.build!
58
-
58
+
59
59
  # Minify module JavaScript immediately so it can be string-wrapped
60
60
  if entry.target[:target_type] == :module
61
61
  SC::Helpers::Minifier.minify dst_path
@@ -67,7 +67,7 @@ module SC
67
67
  def build_inline_javascript(dst_path)
68
68
  SC.logger.info 'Compiling inline Javascript with YUI: ' + dst_path + "..."
69
69
  FileUtils.mkdir_p(File.dirname(dst_path)) # make sure loc exists...
70
- filecompress = "java -Xmx128m -jar \"" + SC.yui_jar + "\" --js \"" + entry.source_path + "\" --js_output_file \"" + dst_path + "\" 2>&1"
70
+ filecompress = "java -Xmx128m -jar \"" + SC.yui_jar + "\" --type js \"" + entry.source_path + "\" -o \"" + dst_path + "\" 2>&1"
71
71
  SC.logger.info 'Compiling with YUI: '+ filecompress + "..."
72
72
 
73
73
  output = `#{filecompress}` # It'd be nice to just read STDERR, but
@@ -80,20 +80,16 @@ module SC::Helpers
80
80
  end
81
81
 
82
82
  def minify(paths)
83
- # Convert to string if an array
84
- if paths.respond_to? :join
85
- paths = paths * "\" \""
86
- end
87
-
88
- yui_root = File.expand_path("../../../../vendor/sproutcore", __FILE__)
89
- jar_path = File.join(yui_root, "SCCompiler.jar")
83
+ paths = paths.first if paths.is_a?(Array) && paths.length == 1
90
84
 
91
- if SC.env[:yui_minification]
92
- command = "java -Xmx256m -jar \"" + jar_path + "\" -yuionly \"" + paths + "\" 2>&1"
85
+ if paths.is_a?(Array)
86
+ paths = paths.map{|p| '"'+p+'"'}.join(' ')
87
+ outfile = '".js$:.js"'
93
88
  else
94
- command = "java -Xmx256m -jar \"" + jar_path + "\" \"" + paths + "\" 2>&1"
89
+ paths = outfile = '"'+paths+'"'
95
90
  end
96
91
 
92
+ command = %{java -Xmx256m -jar "#{SC.yui_jar}" -o #{outfile} #{paths} 2>&1}
97
93
  output = `#{command}`
98
94
 
99
95
  SC.logger.info output
@@ -656,7 +656,7 @@ module SC
656
656
  end
657
657
  end
658
658
 
659
- SC::HashStruct.new ({
659
+ SC::HashStruct.new({
660
660
  :requires => requires,
661
661
  :css_urls => css_urls,
662
662
  :css_2x_urls => css_2x_urls,
@@ -820,7 +820,7 @@ module SC
820
820
  FileUtils.mkdir_p(build_root)
821
821
 
822
822
  # Prepare jsdoc opts
823
- jsdoc_root = SC::LIBPATH / 'vendor' / 'jsdoc'
823
+ jsdoc_root = File.expand_path('../../../../', __FILE__) / 'vendor' / 'jsdoc'
824
824
  jar_path = jsdoc_root / 'jsrun.jar'
825
825
  runjs_path = jsdoc_root / 'app' / 'run.js'
826
826
 
@@ -60,7 +60,9 @@ module SC
60
60
 
61
61
  # Rack documentation says CONTENT_TYPE and CONTENT_LENGTH aren't prefixed by HTTP_
62
62
  headers['Content-Type'] = env['CONTENT_TYPE'] if env['CONTENT_TYPE']
63
- headers['Content-Length'] = env['CONTENT_LENGTH'] if env['CONTENT_LENGTH']
63
+
64
+ length = env['CONTENT_LENGTH']
65
+ headers['Content-Length'] = length if length
64
66
 
65
67
  http_host, http_port = proxy[:to].split(':')
66
68
  http_port = proxy[:secure] ? '443' : '80' if http_port.nil?
@@ -95,13 +97,12 @@ module SC
95
97
  response = web.send(http_method, http_path, headers)
96
98
  else
97
99
  http_body = env['rack.input']
98
- http_body.rewind
99
-
100
- some_request = Net::HTTPGenericRequest.new http_method.upcase,
101
- true, true, http_path, headers
100
+ http_body.rewind # May not be necessary but can't hurt
102
101
 
103
- some_request.body_stream = http_body
104
- response = web.request(some_request)
102
+ req = Net::HTTPGenericRequest.new(http_method.upcase,
103
+ true, true, http_path, headers)
104
+ req.body_stream = http_body if length.to_i > 0
105
+ response = web.request(req)
105
106
  end
106
107
  end
107
108
 
@@ -44,6 +44,22 @@ module SC
44
44
  class_option "library", :type => :string #deprecated
45
45
  class_option "environment", :type => :string #deprecated
46
46
 
47
+ default_task :banner
48
+
49
+ desc "help", "How to use the sproutcore command"
50
+ def banner
51
+ str = "SproutCore #{SC::VERSION} Usage"
52
+ puts "#{str}\n"+('='*str.length)+"\n\n"
53
+
54
+ help
55
+ end
56
+
57
+ map "--version" => :version
58
+ desc "version", "Show the SproutCore version number"
59
+ def version
60
+ puts "SproutCore #{SC::VERSION}"
61
+ end
62
+
47
63
  # This is the core entry method used to run every tool. Extend this
48
64
  # method with any standard preprocessing you want all tools to do before
49
65
  # they do their specific thing.
@@ -51,7 +67,6 @@ module SC
51
67
  super
52
68
  prepare_logger!
53
69
  prepare_mode!
54
- yui_minification!
55
70
  dont_minify!
56
71
  prepare_app!
57
72
  prepare_build_numbers!
@@ -124,10 +139,6 @@ module SC
124
139
  end
125
140
  end
126
141
 
127
- def yui_minification!
128
- SC.env[:yui_minification] = options[:'yui-minification']
129
- end
130
-
131
142
  def dont_minify!
132
143
  SC.env[:dont_minify] = options[:'dont-minify']
133
144
  end
@@ -186,6 +186,11 @@ describe SC::Builder::Html do
186
186
  # such as static_url, sc_resource, etc.
187
187
  describe "StaticHelper" do
188
188
 
189
+ it "adds preferredLanguage definition" do
190
+ result = @builder.bootstrap
191
+ result.should =~ /String.preferredLanguage = "en"/
192
+ end
193
+
189
194
  it "exposes static_url() & sc_static() alias" do
190
195
  @builder.static_url('icons/image').should =~ /icons\/image.png/
191
196
  @builder.static_url('image.jpg').should =~ /image.jpg/
@@ -417,11 +422,6 @@ describe SC::Builder::Html do
417
422
  expect_scripts(result, urls)
418
423
  end
419
424
 
420
- it "adds preferredLanguage definition" do
421
- result = @builder.javascripts_for_client
422
- result.should =~ /String.preferredLanguage = "en"/
423
- end
424
-
425
425
  it "adds javascript_libs to end of scripts" do
426
426
  @target.config.javascript_libs = %w(foo bar)
427
427
  result = @builder.javascripts_for_client
data/sproutcore.gemspec CHANGED
@@ -1,7 +1,9 @@
1
1
  $:.push File.expand_path("../lib", __FILE__)
2
2
  require "sproutcore/version"
3
3
 
4
- is_jruby = Gem::Platform.local.os == "java"
4
+ os = Gem::Platform.local.os
5
+ is_jruby = (os == "java")
6
+ is_mingw = (os == "mingw32")
5
7
 
6
8
  Gem::Specification.new do |s|
7
9
  s.name = 'sproutcore'
@@ -11,7 +13,8 @@ Gem::Specification.new do |s|
11
13
  s.homepage = 'http://www.sproutcore.com'
12
14
  s.summary = "SproutCore is a platform for building native look-and-feel applications on the web"
13
15
 
14
- s.platform = 'java' if is_jruby
16
+ s.platform = 'java' if is_jruby
17
+ s.platform = 'x86-mingw32' if is_mingw
15
18
 
16
19
  s.add_dependency 'rack', '~> 1.2.1'
17
20
  s.add_dependency 'json_pure', "~> 1.4.6"
@@ -19,15 +22,18 @@ Gem::Specification.new do |s|
19
22
  s.add_dependency 'erubis', "~> 2.6.6"
20
23
  s.add_dependency 'thor', '~> 0.14.3'
21
24
  s.add_dependency 'haml', '~> 3.0.24'
22
-
25
+
23
26
  s.add_dependency 'compass', '~> 0.10.5'
24
27
  s.add_dependency 'chunky_png', '~> 1.1.0'
25
28
 
26
29
  if is_jruby
27
30
  s.add_dependency 'mongrel', '~> 1.1.5'
28
31
  else
29
- s.add_dependency 'thin', '= 1.2.8'
30
- s.add_dependency 'eventmachine', '>= 0.12.10' # Thin requires wrong version
32
+ s.add_dependency 'thin', '~> 1.2.11'
33
+ end
34
+
35
+ if is_mingw
36
+ s.add_dependency 'eventmachine', '~> 1.0.0.beta'
31
37
  end
32
38
 
33
39
  s.add_development_dependency 'gemcutter', "~> 0.6.0"
@@ -115,7 +115,7 @@ module Chance
115
115
  _preprocess_css(file) if file[:path] =~ /css$/
116
116
 
117
117
  _preprocess_png(file) if file[:path] =~ /png$/
118
- _preprocess_img(file) if file[:path] =~ /gif$|jpg$/
118
+ _preprocess_rmagick_image(file) if file[:path] =~ /gif$|jpg$/
119
119
 
120
120
  file[:preprocessed] = true
121
121
  end
@@ -128,7 +128,9 @@ module Chance
128
128
  file[:canvas] = nil
129
129
  begin
130
130
  require "rmagick"
131
- rescue Exception
131
+ rescue LoadError
132
+ file[:error] = "RMagick is require to process gifs and jpgs. (gem install rmagick)"
133
+ return
132
134
  end
133
135
 
134
136
  begin
File without changes