sproutit-sproutcore 1.0.0.20090407205609

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 (382) hide show
  1. data/Buildfile +115 -0
  2. data/History.txt +7 -0
  3. data/README.txt +102 -0
  4. data/Rakefile +54 -0
  5. data/Todo.txt +1 -0
  6. data/bin/sc-build +13 -0
  7. data/bin/sc-build-number +13 -0
  8. data/bin/sc-gen +13 -0
  9. data/bin/sc-init +13 -0
  10. data/bin/sc-manifest +13 -0
  11. data/bin/sc-server +13 -0
  12. data/bin/sproutcore +14 -0
  13. data/buildtasks/build.rake +73 -0
  14. data/buildtasks/entry.rake +59 -0
  15. data/buildtasks/manifest.rake +469 -0
  16. data/buildtasks/render.rake +21 -0
  17. data/buildtasks/target.rake +42 -0
  18. data/gen/Buildfile +16 -0
  19. data/gen/app/Buildfile +36 -0
  20. data/gen/app/README +1 -0
  21. data/gen/app/USAGE +13 -0
  22. data/gen/app/templates/apps/{target_name}/core.js +27 -0
  23. data/gen/app/templates/apps/{target_name}/english.lproj/loading.rhtml +9 -0
  24. data/gen/app/templates/apps/{target_name}/english.lproj/main_page.js +22 -0
  25. data/gen/app/templates/apps/{target_name}/english.lproj/strings.js +15 -0
  26. data/gen/app/templates/apps/{target_name}/main.js +30 -0
  27. data/gen/controller/Buildfile +18 -0
  28. data/gen/controller/README +1 -0
  29. data/gen/controller/USAGE +13 -0
  30. data/gen/controller/templates/controllers/{filename}.js +18 -0
  31. data/gen/controller/templates/tests/controllers/{filename}.js +15 -0
  32. data/gen/framework/Buildfile +36 -0
  33. data/gen/framework/README +1 -0
  34. data/gen/framework/USAGE +13 -0
  35. data/gen/framework/templates/frameworks/{target_name}/core.js +21 -0
  36. data/gen/framework/templates/frameworks/{target_name}/english.lproj/strings.js +15 -0
  37. data/gen/language/Buildfile +26 -0
  38. data/gen/language/README +1 -0
  39. data/gen/language/USAGE +13 -0
  40. data/gen/language/templates/{filename}/strings.js +14 -0
  41. data/gen/model/Buildfile +16 -0
  42. data/gen/model/README +1 -0
  43. data/gen/model/USAGE +15 -0
  44. data/gen/model/templates/fixtures/{filename}.js +35 -0
  45. data/gen/model/templates/models/{filename}.js +19 -0
  46. data/gen/model/templates/tests/models/{filename}.js +15 -0
  47. data/gen/project/Buildfile +45 -0
  48. data/gen/project/INIT +3 -0
  49. data/gen/project/README +1 -0
  50. data/gen/project/USAGE +2 -0
  51. data/gen/project/templates/{filename}/Buildfile +7 -0
  52. data/gen/project/templates/{filename}/README +7 -0
  53. data/gen/test/Buildfile +25 -0
  54. data/gen/test/README +1 -0
  55. data/gen/test/USAGE +12 -0
  56. data/gen/test/templates/tests/{filename}.js +15 -0
  57. data/gen/theme/Buildfile +36 -0
  58. data/gen/theme/README +1 -0
  59. data/gen/theme/USAGE +13 -0
  60. data/gen/theme/templates/themes/{target_name}/english.lproj/strings.js +15 -0
  61. data/gen/view/Buildfile +18 -0
  62. data/gen/view/README +1 -0
  63. data/gen/view/USAGE +13 -0
  64. data/gen/view/templates/tests/views/{filename}.js +15 -0
  65. data/gen/view/templates/views/{filename}.js +18 -0
  66. data/lib/sproutcore.rb +130 -0
  67. data/lib/sproutcore/builders/base.rb +79 -0
  68. data/lib/sproutcore/builders/combine.rb +37 -0
  69. data/lib/sproutcore/builders/html.rb +177 -0
  70. data/lib/sproutcore/builders/javascript.rb +55 -0
  71. data/lib/sproutcore/builders/minify.rb +67 -0
  72. data/lib/sproutcore/builders/sass.rb +55 -0
  73. data/lib/sproutcore/builders/strings.rb +44 -0
  74. data/lib/sproutcore/builders/stylesheet.rb +40 -0
  75. data/lib/sproutcore/builders/test.rb +58 -0
  76. data/lib/sproutcore/builders/test_index.rb +26 -0
  77. data/lib/sproutcore/buildfile.rb +483 -0
  78. data/lib/sproutcore/buildfile/build_task.rb +33 -0
  79. data/lib/sproutcore/buildfile/buildfile_dsl.rb +162 -0
  80. data/lib/sproutcore/buildfile/cloneable.rb +34 -0
  81. data/lib/sproutcore/buildfile/early_time.rb +29 -0
  82. data/lib/sproutcore/buildfile/invocation_chain.rb +64 -0
  83. data/lib/sproutcore/buildfile/namespace.rb +33 -0
  84. data/lib/sproutcore/buildfile/string_ext.rb +198 -0
  85. data/lib/sproutcore/buildfile/task.rb +304 -0
  86. data/lib/sproutcore/buildfile/task_arguments.rb +86 -0
  87. data/lib/sproutcore/buildfile/task_manager.rb +193 -0
  88. data/lib/sproutcore/deprecated/view_helper.rb +662 -0
  89. data/lib/sproutcore/helpers/capture_helper.rb +30 -0
  90. data/lib/sproutcore/helpers/cssmin.rb +202 -0
  91. data/lib/sproutcore/helpers/dom_id_helper.rb +21 -0
  92. data/lib/sproutcore/helpers/entry_sorter.rb +105 -0
  93. data/lib/sproutcore/helpers/packed_optimizer.rb +102 -0
  94. data/lib/sproutcore/helpers/static_helper.rb +268 -0
  95. data/lib/sproutcore/helpers/tag_helper.rb +117 -0
  96. data/lib/sproutcore/helpers/text_helper.rb +303 -0
  97. data/lib/sproutcore/models/generator.rb +493 -0
  98. data/lib/sproutcore/models/hash_struct.rb +109 -0
  99. data/lib/sproutcore/models/manifest.rb +342 -0
  100. data/lib/sproutcore/models/manifest_entry.rb +232 -0
  101. data/lib/sproutcore/models/project.rb +270 -0
  102. data/lib/sproutcore/models/target.rb +403 -0
  103. data/lib/sproutcore/rack/builder.rb +269 -0
  104. data/lib/sproutcore/rack/dev.rb +51 -0
  105. data/lib/sproutcore/rack/docs.rb +24 -0
  106. data/lib/sproutcore/rack/proxy.rb +92 -0
  107. data/lib/sproutcore/rack/service.rb +141 -0
  108. data/lib/sproutcore/rack/test_runner.rb +24 -0
  109. data/lib/sproutcore/render_engines/erubis.rb +55 -0
  110. data/lib/sproutcore/render_engines/haml.rb +39 -0
  111. data/lib/sproutcore/tools.rb +311 -0
  112. data/lib/sproutcore/tools/build.rb +80 -0
  113. data/lib/sproutcore/tools/build_number.rb +23 -0
  114. data/lib/sproutcore/tools/gen.rb +99 -0
  115. data/lib/sproutcore/tools/init.rb +40 -0
  116. data/lib/sproutcore/tools/manifest.rb +84 -0
  117. data/lib/sproutcore/tools/server.rb +45 -0
  118. data/spec/buildtasks/build/copy_spec.rb +60 -0
  119. data/spec/buildtasks/build/spec_helper.rb +36 -0
  120. data/spec/buildtasks/manifest/catalog_spec.rb +48 -0
  121. data/spec/buildtasks/manifest/hide_buildfiles_spec.rb +125 -0
  122. data/spec/buildtasks/manifest/localize_spec.rb +97 -0
  123. data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +246 -0
  124. data/spec/buildtasks/manifest/prepare_build_tasks/css_spec.rb +87 -0
  125. data/spec/buildtasks/manifest/prepare_build_tasks/html_spec.rb +175 -0
  126. data/spec/buildtasks/manifest/prepare_build_tasks/javascript_spec.rb +65 -0
  127. data/spec/buildtasks/manifest/prepare_build_tasks/minify_spec.rb +70 -0
  128. data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +152 -0
  129. data/spec/buildtasks/manifest/prepare_build_tasks/sass_spec.rb +98 -0
  130. data/spec/buildtasks/manifest/prepare_build_tasks/strings_spec.rb +64 -0
  131. data/spec/buildtasks/manifest/prepare_build_tasks/tests_spec.rb +163 -0
  132. data/spec/buildtasks/manifest/prepare_spec.rb +43 -0
  133. data/spec/buildtasks/manifest/spec_helper.rb +35 -0
  134. data/spec/buildtasks/target_spec.rb +214 -0
  135. data/spec/fixtures/builder_tests/Buildfile +15 -0
  136. data/spec/fixtures/builder_tests/apps/combine_test/a.js +1 -0
  137. data/spec/fixtures/builder_tests/apps/combine_test/b.js +1 -0
  138. data/spec/fixtures/builder_tests/apps/combine_test/c.js +1 -0
  139. data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/a.css +1 -0
  140. data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/b.css +1 -0
  141. data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/c.css +1 -0
  142. data/spec/fixtures/builder_tests/apps/html_test/english.lproj/bar1_sample.rhtml +2 -0
  143. data/spec/fixtures/builder_tests/apps/html_test/english.lproj/erb_sample.html.erb +1 -0
  144. data/spec/fixtures/builder_tests/apps/html_test/english.lproj/icons/image.png +0 -0
  145. data/spec/fixtures/builder_tests/apps/html_test/english.lproj/image.jpg +0 -0
  146. data/spec/fixtures/builder_tests/apps/html_test/english.lproj/rhtml_sample.rhtml +1 -0
  147. data/spec/fixtures/builder_tests/apps/html_test/english.lproj/strings.js +4 -0
  148. data/spec/fixtures/builder_tests/apps/html_test/english.lproj/style.css +0 -0
  149. data/spec/fixtures/builder_tests/apps/html_test/french.lproj/french-icons/fr.png +0 -0
  150. data/spec/fixtures/builder_tests/apps/html_test/french.lproj/strings.js +4 -0
  151. data/spec/fixtures/builder_tests/apps/html_test/lib/layout_template.rhtml +1 -0
  152. data/spec/fixtures/builder_tests/apps/html_test/scripts.js +0 -0
  153. data/spec/fixtures/builder_tests/apps/javascript_test/sc_static.js +15 -0
  154. data/spec/fixtures/builder_tests/apps/javascript_test/sc_super.js +4 -0
  155. data/spec/fixtures/builder_tests/apps/javascript_test/strings.js +7 -0
  156. data/spec/fixtures/builder_tests/apps/sass_test/sample.sass +3 -0
  157. data/spec/fixtures/builder_tests/apps/strings_test/lproj/strings.js +8 -0
  158. data/spec/fixtures/builder_tests/apps/stylesheet_test/build_directives.css +9 -0
  159. data/spec/fixtures/builder_tests/apps/stylesheet_test/sc_static.css +12 -0
  160. data/spec/fixtures/builder_tests/apps/test_test/lib/alt_layout.rhtml +1 -0
  161. data/spec/fixtures/builder_tests/apps/test_test/lib/test_layout.rhtml +3 -0
  162. data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test.js +1 -0
  163. data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test2.js +1 -0
  164. data/spec/fixtures/builder_tests/apps/test_test/tests/rhtml_test.rhtml +4 -0
  165. data/spec/fixtures/builder_tests/frameworks/debug/core.js +0 -0
  166. data/spec/fixtures/builder_tests/frameworks/debug/english.lproj/dummy.css +0 -0
  167. data/spec/fixtures/builder_tests/frameworks/qunit/core.js +0 -0
  168. data/spec/fixtures/builder_tests/frameworks/qunit/english.lproj/dummy.css +0 -0
  169. data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/req_style_1.css +0 -0
  170. data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/strings.js +4 -0
  171. data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/test.rhtml +1 -0
  172. data/spec/fixtures/builder_tests/frameworks/req_target_1/req_js_1.js +0 -0
  173. data/spec/fixtures/builder_tests/frameworks/req_target_2/english.lproj/req_style_2.css +0 -0
  174. data/spec/fixtures/builder_tests/frameworks/req_target_2/english.lproj/test.rhtml +1 -0
  175. data/spec/fixtures/builder_tests/frameworks/req_target_2/javascript.js +1 -0
  176. data/spec/fixtures/builder_tests/frameworks/req_target_2/lib/alt_layout.rhtml +0 -0
  177. data/spec/fixtures/builder_tests/frameworks/req_target_2/req_js_2.js +0 -0
  178. data/spec/fixtures/builder_tests/themes/sample_theme/Buildfile +1 -0
  179. data/spec/fixtures/buildfiles/basic/Buildfile +16 -0
  180. data/spec/fixtures/buildfiles/basic/task_module.rake +6 -0
  181. data/spec/fixtures/buildfiles/installed/Buildfile +7 -0
  182. data/spec/fixtures/buildfiles/installed/Buildfile2 +5 -0
  183. data/spec/fixtures/buildfiles/project_test/Buildfile +4 -0
  184. data/spec/fixtures/buildfiles/project_test/not_project/Buildfile +2 -0
  185. data/spec/fixtures/buildfiles/project_test/not_project/child/PLACEHOLDER +0 -0
  186. data/spec/fixtures/entry_for_project/Buildfile +1 -0
  187. data/spec/fixtures/entry_for_project/apps/test_app/entry.txt +0 -0
  188. data/spec/fixtures/entry_for_project/apps/test_app/frameworks/nested/PLACEHOLDER +0 -0
  189. data/spec/fixtures/entry_for_project/frameworks/shared/PLACEHOLDER +0 -0
  190. data/spec/fixtures/find_targets/custom/Buildfile +8 -0
  191. data/spec/fixtures/find_targets/custom/bars/bar1/bars/bar1/PLACEHOLDER +0 -0
  192. data/spec/fixtures/find_targets/custom/bars/bar1/bars/bar2/PLACEHOLDER +0 -0
  193. data/spec/fixtures/find_targets/custom/bars/bar1/foos/foo1/PLACEHOLDER +0 -0
  194. data/spec/fixtures/find_targets/custom/bars/bar1/foos/foo2/PLACEHOLDER +0 -0
  195. data/spec/fixtures/find_targets/custom/foos/custom_foos/Buildfile +5 -0
  196. data/spec/fixtures/find_targets/custom/foos/custom_foos/custom_foodir/foo1/PLACEHOLDER +0 -0
  197. data/spec/fixtures/find_targets/custom/foos/custom_foos/custom_foodir/foo2/PLACEHOLDER +0 -0
  198. data/spec/fixtures/find_targets/custom/foos/custom_foos/foos/not_foo1/PLACEHOLDER +0 -0
  199. data/spec/fixtures/find_targets/custom/foos/foo1/bars/bar1/PLACEHOLDER +0 -0
  200. data/spec/fixtures/find_targets/custom/foos/foo1/bars/bar2/PLACEHOLDER +0 -0
  201. data/spec/fixtures/find_targets/nested/Buildfile +8 -0
  202. data/spec/fixtures/find_targets/nested/apps/app1/Buildfile +1 -0
  203. data/spec/fixtures/find_targets/nested/apps/app1/apps/nested_app/PLACEHOLDER +0 -0
  204. data/spec/fixtures/find_targets/standard/Apps/app1/frameworks/framework1/PLACEHOLDER +0 -0
  205. data/spec/fixtures/find_targets/standard/Apps/app1/frameworks/framework2/PLACEHOLDER +0 -0
  206. data/spec/fixtures/find_targets/standard/clients/client1/PLACEHOLDER +0 -0
  207. data/spec/fixtures/find_targets/standard/frameworks/framework1/frameworks/framework1/PLACEHOLDER +0 -0
  208. data/spec/fixtures/find_targets/standard/frameworks/framework2/PLACEHOLDER +0 -0
  209. data/spec/fixtures/find_targets/standard/themes/theme1/PLACEHOLDER +0 -0
  210. data/spec/fixtures/find_targets/standard/themes/theme2/PLACEHOLDER +0 -0
  211. data/spec/fixtures/languages/apps/caps_long_names/English.lproj/PLACEHOLDER +0 -0
  212. data/spec/fixtures/languages/apps/caps_long_names/FreNCH.lproj/PLACEHOLDER +0 -0
  213. data/spec/fixtures/languages/apps/caps_long_names/UnknOWN.lproj/PLACEHOLDER +0 -0
  214. data/spec/fixtures/languages/apps/long_names/english.lproj/PLACEHOLDER +0 -0
  215. data/spec/fixtures/languages/apps/long_names/french.lproj/PLACEHOLDER +0 -0
  216. data/spec/fixtures/languages/apps/long_names/german.lproj/PLACEHOLDER +0 -0
  217. data/spec/fixtures/languages/apps/long_names/italian.lproj/PLACEHOLDER +0 -0
  218. data/spec/fixtures/languages/apps/long_names/japanese.lproj/PLACEHOLDER +0 -0
  219. data/spec/fixtures/languages/apps/long_names/spanish.lproj/PLACEHOLDER +0 -0
  220. data/spec/fixtures/languages/apps/long_names/unknown.lproj/PLACEHOLDER +0 -0
  221. data/spec/fixtures/languages/apps/no_names/PLACEHOLDER +0 -0
  222. data/spec/fixtures/languages/apps/short_names/de.lproj/PLACEHOLDER +0 -0
  223. data/spec/fixtures/languages/apps/short_names/en-CA.lproj/PLACEHOLDER +0 -0
  224. data/spec/fixtures/languages/apps/short_names/en-GB.lproj/PLACEHOLDER +0 -0
  225. data/spec/fixtures/languages/apps/short_names/en-US.lproj/PLACEHOLDER +0 -0
  226. data/spec/fixtures/languages/apps/short_names/en.lproj/PLACEHOLDER +0 -0
  227. data/spec/fixtures/languages/apps/short_names/es.lproj/PLACEHOLDER +0 -0
  228. data/spec/fixtures/languages/apps/short_names/foo.lproj/PLACEHOLDER +0 -0
  229. data/spec/fixtures/languages/apps/short_names/fr.lproj/PLACEHOLDER +0 -0
  230. data/spec/fixtures/languages/apps/short_names/it.lproj/PLACEHOLDER +0 -0
  231. data/spec/fixtures/languages/apps/short_names/ja.lproj/PLACEHOLDER +0 -0
  232. data/spec/fixtures/ordered_entries/apps/no_requires/1.js +1 -0
  233. data/spec/fixtures/ordered_entries/apps/no_requires/B.js +1 -0
  234. data/spec/fixtures/ordered_entries/apps/no_requires/a.js +1 -0
  235. data/spec/fixtures/ordered_entries/apps/no_requires/a/a.js +1 -0
  236. data/spec/fixtures/ordered_entries/apps/no_requires/a/b.js +1 -0
  237. data/spec/fixtures/ordered_entries/apps/no_requires/b/a.js +1 -0
  238. data/spec/fixtures/ordered_entries/apps/no_requires/c.js +1 -0
  239. data/spec/fixtures/ordered_entries/apps/no_requires/core.js +1 -0
  240. data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/B.css +0 -0
  241. data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a.css +0 -0
  242. data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a/a.css +0 -0
  243. data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a/b.css +0 -0
  244. data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/b/a.css +0 -0
  245. data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/c.css +0 -0
  246. data/spec/fixtures/ordered_entries/apps/no_requires/lproj/strings.js +1 -0
  247. data/spec/fixtures/ordered_entries/apps/no_requires/utils.js +1 -0
  248. data/spec/fixtures/ordered_entries/apps/with_requires/a.js +2 -0
  249. data/spec/fixtures/ordered_entries/apps/with_requires/b.js +3 -0
  250. data/spec/fixtures/ordered_entries/apps/with_requires/c.js +2 -0
  251. data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/a.css +2 -0
  252. data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/b.css +2 -0
  253. data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/c.css +2 -0
  254. data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/d.js +1 -0
  255. data/spec/fixtures/real_world/Buildfile +12 -0
  256. data/spec/fixtures/real_world/apps/account/README +1 -0
  257. data/spec/fixtures/real_world/apps/calendar/README +1 -0
  258. data/spec/fixtures/real_world/apps/contacts/README_BEFORE_EDITING +1 -0
  259. data/spec/fixtures/real_world/apps/files/README +1 -0
  260. data/spec/fixtures/real_world/apps/mail/README +1 -0
  261. data/spec/fixtures/real_world/apps/mobile_photos/README +1 -0
  262. data/spec/fixtures/real_world/apps/photos/README +1 -0
  263. data/spec/fixtures/real_world/apps/uploader/README +1 -0
  264. data/spec/fixtures/real_world/frameworks/core_files/PLACEHOLDER +0 -0
  265. data/spec/fixtures/real_world/frameworks/core_photos/PLACEHOLDER +0 -0
  266. data/spec/fixtures/real_world/frameworks/shared/PLACEHOLDER +0 -0
  267. data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +26 -0
  268. data/spec/fixtures/real_world/frameworks/sproutcore/README +1 -0
  269. data/spec/fixtures/real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER +0 -0
  270. data/spec/fixtures/real_world/frameworks/sproutcore/apps/test_runner/PLACEHOLDER +0 -0
  271. data/spec/fixtures/real_world/frameworks/sproutcore/core.js +0 -0
  272. data/spec/fixtures/real_world/frameworks/sproutcore/debug/debug-resource.html +0 -0
  273. data/spec/fixtures/real_world/frameworks/sproutcore/debug/sample_debug.js +0 -0
  274. data/spec/fixtures/real_world/frameworks/sproutcore/demo2.js +0 -0
  275. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/debug/sample_debug-loc.js +0 -0
  276. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.css +4 -0
  277. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.html +1 -0
  278. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo2.sass +0 -0
  279. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.haml +0 -0
  280. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.html.erb +1 -0
  281. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.rhtml +0 -0
  282. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/fixtures/sample_fixtures-loc.js +0 -0
  283. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/has_require.css +4 -0
  284. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_require.css +1 -0
  285. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_sc_resource.rhtml +1 -0
  286. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/protocols/sample-loc.js +0 -0
  287. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.css +6 -0
  288. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.rhtml +3 -0
  289. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/strings.js +1 -0
  290. data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/tests/sample-loc.js +0 -0
  291. data/spec/fixtures/real_world/frameworks/sproutcore/fixtures/sample-json-fixture.json +1 -0
  292. data/spec/fixtures/real_world/frameworks/sproutcore/fixtures/sample_fixtures.js +0 -0
  293. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/application/PLACEHOLDER +0 -0
  294. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/costello/core.js +0 -0
  295. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/data_store/PLACEHOLDER +0 -0
  296. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/debug/PLACEHOLDER +0 -0
  297. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/desktop/PLACEHOLDER +0 -0
  298. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/empty_theme/PLACEHOLDER +0 -0
  299. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/foundation/PLACEHOLDER +0 -0
  300. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/mobile/PLACEHOLDER +0 -0
  301. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/qunit/PLACEHOLDER +0 -0
  302. data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/uploader/PLACEHOLDER +0 -0
  303. data/spec/fixtures/real_world/frameworks/sproutcore/french.lproj/french-resource.js +0 -0
  304. data/spec/fixtures/real_world/frameworks/sproutcore/french.lproj/strings.js +1 -0
  305. data/spec/fixtures/real_world/frameworks/sproutcore/german.lproj/german-resource.js +0 -0
  306. data/spec/fixtures/real_world/frameworks/sproutcore/german.lproj/strings.js +0 -0
  307. data/spec/fixtures/real_world/frameworks/sproutcore/has_require.js +4 -0
  308. data/spec/fixtures/real_world/frameworks/sproutcore/lib/index.html +1 -0
  309. data/spec/fixtures/real_world/frameworks/sproutcore/no_require.js +1 -0
  310. data/spec/fixtures/real_world/frameworks/sproutcore/protocols/sample.js +0 -0
  311. data/spec/fixtures/real_world/frameworks/sproutcore/sc_resource.js +6 -0
  312. data/spec/fixtures/real_world/frameworks/sproutcore/tests/nested/sample1.js +0 -0
  313. data/spec/fixtures/real_world/frameworks/sproutcore/tests/nested/sample2.js +0 -0
  314. data/spec/fixtures/real_world/frameworks/sproutcore/tests/sample.js +0 -0
  315. data/spec/fixtures/real_world/frameworks/sproutcore/tests/sample.rhtml +1 -0
  316. data/spec/fixtures/real_world/frameworks/sproutcore/themes/standard_theme/README +0 -0
  317. data/spec/fixtures/real_world/frameworks/sproutcore/views/view.js +1 -0
  318. data/spec/fixtures/real_world/generators/sample_custom/Buildfile +0 -0
  319. data/spec/fixtures/real_world/generators/sample_custom/templates/{filename}.js +1 -0
  320. data/spec/fixtures/recursive_project/Buildfile +8 -0
  321. data/spec/fixtures/recursive_project/frameworks/sproutcore/frameworks/costello/PLACEHOLDER +0 -0
  322. data/spec/lib/builders/combine_spec.rb +67 -0
  323. data/spec/lib/builders/html_spec.rb +577 -0
  324. data/spec/lib/builders/javascript_spec.rb +81 -0
  325. data/spec/lib/builders/sass_spec.rb +43 -0
  326. data/spec/lib/builders/spec_helper.rb +30 -0
  327. data/spec/lib/builders/strings_spec.rb +52 -0
  328. data/spec/lib/builders/stylesheet_spec.rb +63 -0
  329. data/spec/lib/builders/test_index_spec.rb +44 -0
  330. data/spec/lib/builders/test_spec.rb +135 -0
  331. data/spec/lib/buildfile/config_for_spec.rb +81 -0
  332. data/spec/lib/buildfile/define_spec.rb +59 -0
  333. data/spec/lib/buildfile/dup_spec.rb +65 -0
  334. data/spec/lib/buildfile/invoke_spec.rb +130 -0
  335. data/spec/lib/buildfile/load_spec.rb +49 -0
  336. data/spec/lib/buildfile/task/dup_spec.rb +55 -0
  337. data/spec/lib/buildfile/task_defined_spec.rb +17 -0
  338. data/spec/lib/buildfile_commands/build_task_spec.rb +19 -0
  339. data/spec/lib/buildfile_commands/config_spec.rb +97 -0
  340. data/spec/lib/buildfile_commands/import_spec.rb +17 -0
  341. data/spec/lib/buildfile_commands/namespace_spec.rb +18 -0
  342. data/spec/lib/buildfile_commands/proxies_spec.rb +38 -0
  343. data/spec/lib/buildfile_commands/replace_task_spec.rb +29 -0
  344. data/spec/lib/buildfile_commands/task_spec.rb +36 -0
  345. data/spec/lib/helpers/packing_optimizer/optimize_spec.rb +26 -0
  346. data/spec/lib/models/hash_struct/deep_clone_spec.rb +27 -0
  347. data/spec/lib/models/hash_struct/has_options_spec.rb +32 -0
  348. data/spec/lib/models/hash_struct/hash_spec.rb +64 -0
  349. data/spec/lib/models/hash_struct/merge_spec.rb +26 -0
  350. data/spec/lib/models/hash_struct/method_missing.rb +41 -0
  351. data/spec/lib/models/manifest/add_entry_spec.rb +36 -0
  352. data/spec/lib/models/manifest/add_transform_spec.rb +90 -0
  353. data/spec/lib/models/manifest/build_spec.rb +78 -0
  354. data/spec/lib/models/manifest/entry_for_spec.rb +94 -0
  355. data/spec/lib/models/manifest/find_entry.rb +84 -0
  356. data/spec/lib/models/manifest/prepare_spec.rb +62 -0
  357. data/spec/lib/models/manifest_entry/cacheable_url_spec.rb +31 -0
  358. data/spec/lib/models/manifest_entry/prepare_spec.rb +54 -0
  359. data/spec/lib/models/project/add_target_spec.rb +44 -0
  360. data/spec/lib/models/project/buildfile_spec.rb +35 -0
  361. data/spec/lib/models/project/find_targets_for_spec.rb +77 -0
  362. data/spec/lib/models/project/load_nearest_project_spec.rb +23 -0
  363. data/spec/lib/models/project/target_for_spec.rb +33 -0
  364. data/spec/lib/models/project/targets_spec.rb +62 -0
  365. data/spec/lib/models/target/compute_build_number_spec.rb +125 -0
  366. data/spec/lib/models/target/config_spec.rb +30 -0
  367. data/spec/lib/models/target/expand_required_targets_spec.rb +48 -0
  368. data/spec/lib/models/target/installed_languages_spec.rb +47 -0
  369. data/spec/lib/models/target/lproj_for_spec.rb +38 -0
  370. data/spec/lib/models/target/manifest_for_spec.rb +42 -0
  371. data/spec/lib/models/target/parent_target_spec.rb +21 -0
  372. data/spec/lib/models/target/prepare_spec.rb +53 -0
  373. data/spec/lib/models/target/required_targets_spec.rb +119 -0
  374. data/spec/lib/models/target/target_for_spec.rb +56 -0
  375. data/spec/lib/tools/build_number_spec.rb +28 -0
  376. data/spec/lib/tools/gen_spec.rb +207 -0
  377. data/spec/lib/tools/tools_spec.rb +78 -0
  378. data/spec/spec_helper.rb +138 -0
  379. data/sproutcore.gemspec +47 -0
  380. data/vendor/github_gem_lint.rb +22 -0
  381. data/vendor/yui-compressor/yuicompressor-2.4.2.jar +0 -0
  382. metadata +1084 -0
@@ -0,0 +1,87 @@
1
+ require File.join(File.dirname(__FILE__), %w(.. spec_helper))
2
+
3
+ # This task prepares a single CSS entry for every untagged source entry.
4
+ describe "manifest:prepare_build_tasks:css" do
5
+
6
+ include SC::SpecHelpers
7
+ include SC::ManifestSpecHelpers
8
+
9
+ before do
10
+ std_before
11
+ end
12
+
13
+ def run_task
14
+ @manifest.prepare!
15
+ super('manifest:prepare_build_tasks:css')
16
+ end
17
+
18
+ it "should run manifest:prepare_build_tasks:setup as prereq" do
19
+ should_run('manifest:prepare_build_tasks:setup') { run_task }
20
+ end
21
+
22
+ # This rewriting is done to make sure source entries are disambiguated from
23
+ # the generated stylesheet.css that will live at the root level
24
+ it "rewrites all css entries to begin with 'source/...'" do
25
+ run_task
26
+ entries = @manifest.entries.select { |e| e.entry_type == :css }
27
+ entries.each do |entry|
28
+ %w(filename url build_path).each do |key|
29
+ entry[key].should =~ /source\//
30
+ end
31
+ end
32
+ end
33
+
34
+ it "creates a transform entry for each css entry" do
35
+ run_task
36
+
37
+ # find all original CSS entries...
38
+ originals = @manifest.entries(:hidden => true).select do |entry|
39
+ entry.original? && entry.ext == 'css'
40
+ end
41
+ originals.size.should > 0 # precondition
42
+
43
+ # transformed entries
44
+ entries = @manifest.entries.select { |e| e.entry_type == :css }
45
+ entries.size.should == originals.size #precondition
46
+
47
+ # one transformed entry should exist for each original entry.
48
+ entries.each do |entry|
49
+ entry.should be_transform
50
+ entry.source_entry.should_not be_nil
51
+ originals.should include(entry.source_entry)
52
+ originals.delete(entry.source_entry) # so as not to allow doubles
53
+ end
54
+ originals.size.should == 0
55
+ end
56
+
57
+ describe "supports require() and sc_require() statements" do
58
+
59
+ it "adds a entry.required property with empty array of no requires are specified in file" do
60
+ run_task
61
+ entry = @manifest.entry_for('source/no_require.css')
62
+ entry.required.should == []
63
+ end
64
+
65
+ it "searches files for require() & sc_requires() statements and adds them to entry.required array -- (also should ignore any ext)" do
66
+ run_task
67
+ entry = @manifest.entry_for('source/has_require.css')
68
+ entry.required.sort.should == ['demo2', 'no_require']
69
+ end
70
+
71
+ end
72
+
73
+ describe "supports sc_resource() statement" do
74
+ it "sets entry.resource = 'stylesheet' if no sc_resource statement is found in files" do
75
+ run_task
76
+ entry = @manifest.entry_for('source/no_require.css')
77
+ entry.resource.should == 'stylesheet'
78
+ end
79
+
80
+ it "searches files for sc_resource() statement and stores last value in entry.resource property" do
81
+ run_task
82
+ entry = @manifest.entry_for 'source/sc_resource.css'
83
+ entry.resource.should == 'bar'
84
+ end
85
+ end
86
+
87
+ end
@@ -0,0 +1,175 @@
1
+ require File.join(File.dirname(__FILE__), %w(.. spec_helper))
2
+
3
+ describe "manifest:prepare_build_tasks:html" do
4
+
5
+ include SC::SpecHelpers
6
+ include SC::ManifestSpecHelpers
7
+
8
+ before do
9
+ std_before
10
+ end
11
+
12
+ def run_task
13
+ @manifest.prepare!
14
+ super('manifest:prepare_build_tasks:html')
15
+ end
16
+
17
+ it "should run manifest:prepare_build_tasks:setup & strings as prereq" do
18
+ %w(setup).each do |task_name|
19
+ should_run("manifest:prepare_build_tasks:#{task_name}") { run_task }
20
+ end
21
+ end
22
+
23
+ describe "supports sc_resource() statement" do
24
+ it "sets entry.resource = 'index' if no sc_resource statement is found in files" do
25
+ run_task
26
+ entry = entry_for('no_sc_resource.rhtml')
27
+ entry.resource.should == 'index'
28
+ end
29
+
30
+ it "searches files for sc_resource() statement and stores last value in entry.resource property" do
31
+ run_task
32
+ entry = entry_for 'sc_resource.rhtml'
33
+ entry.resource.should == 'bar'
34
+ end
35
+ end
36
+
37
+ describe "annotates entries with render_task" do
38
+
39
+ before do
40
+ run_task
41
+ end
42
+
43
+ it "file.erb => render:erubis" do
44
+ expected = entry_for('file_extension_test.html.erb')
45
+ expected.render_task.should == "render:erubis"
46
+ end
47
+
48
+ it "file.haml => render:haml" do
49
+ expected = entry_for('file_extension_test.haml')
50
+ expected.render_task.should == "render:haml"
51
+ end
52
+
53
+ it "file.rhtml => render:erubis" do
54
+ expected = entry_for('file_extension_test.rhtml')
55
+ expected.render_task.should == "render:erubis"
56
+ end
57
+
58
+ end
59
+
60
+ describe "special case handling of index.html for loadable targets" do
61
+
62
+ before do
63
+ # load application target instead of framework...
64
+ @target = @project.target_for :contacts
65
+ @buildfile = @target.buildfile
66
+ @config = @target.config
67
+ @manifest = @target.manifest_for(:language => :fr)
68
+ @target.prepare!
69
+
70
+ run_task
71
+ @index_entry = entry_for 'index.html'
72
+ end
73
+
74
+ it "applies these rules only to a target that is loadable" do
75
+ @target.should be_loadable # precondition
76
+ end
77
+
78
+ # an index.html is always needed for an application to load properly
79
+ # even if not explicit fragments are present in the app.
80
+ it "generates an index.html entry even if there are no source html fragments" do
81
+ @index_entry.should_not be_nil
82
+ @index_entry.source_entries.size.should == 0 # precondition
83
+ end
84
+
85
+ it "does not hide the index.html entry" do
86
+ @index_entry.should_not be_hidden
87
+ end
88
+
89
+ it "adds the include_required_targets? property to the entry" do
90
+ @index_entry.should be_include_required_targets
91
+ end
92
+
93
+ it "marks the target as loadable" do
94
+ @target.should be_loadable
95
+ end
96
+
97
+ end
98
+
99
+ describe "special case handling of index.html for frameworks" do
100
+
101
+ before do
102
+ run_task
103
+ @index_entry = entry_for 'index.html'
104
+ @bar_entry = @manifest.entry_for('bar.html')
105
+ end
106
+
107
+ it "applies these rules only to a target that is not loadable" do
108
+ @target.should_not be_loadable # precondition
109
+ end
110
+
111
+ it "hides an index.html entry" do
112
+ @index_entry.should be_hidden
113
+ end
114
+
115
+ it "does not add include_required_targets property to entry" do
116
+ @index_entry.should_not be_include_required_targets
117
+ end
118
+
119
+ it "should not hide other .html entries if the target is not loadable" do
120
+ @bar_entry.should_not be_hidden
121
+ end
122
+
123
+ end
124
+
125
+ describe "combines html entries into one output file per resource" do
126
+
127
+ before do
128
+ run_task
129
+ @index_entry = entry_for 'index.html'
130
+ @bar_entry = @manifest.entry_for('bar.html')
131
+ end
132
+
133
+ it "should be composite entries" do
134
+ @index_entry.should be_composite
135
+ @bar_entry.should be_composite
136
+ end
137
+
138
+ it "should include any files ending in .rhtml" do
139
+ expected = entry_for('file_extension_test.rhtml')
140
+ @index_entry.source_entries.should include(expected)
141
+ end
142
+
143
+ it "should include any files ending in .erb" do
144
+ expected = entry_for('file_extension_test.html.erb')
145
+ @index_entry.source_entries.should include(expected)
146
+ end
147
+
148
+ it "should include any files ending in .haml" do
149
+ expected = entry_for('file_extension_test.haml')
150
+ @index_entry.source_entries.should include(expected)
151
+ end
152
+
153
+ it "creates a combined index entry for each resource named in files" do
154
+ # spot check...
155
+ @index_entry.source_entries.should include(entry_for('no_sc_resource.rhtml'))
156
+
157
+ @bar_entry.source_entries.should include(entry_for('sc_resource.rhtml'))
158
+ end
159
+
160
+ it "entries have a build_task = build:html" do
161
+ @index_entry.build_task.should == 'build:html'
162
+ @bar_entry.build_task.should == 'build:html'
163
+ end
164
+
165
+ it "hides source entries" do
166
+ [@index_entry, @bar_entry].each do |entry|
167
+ entry.source_entries.each do |source_entry|
168
+ source_entry.should be_hidden
169
+ end
170
+ end
171
+ end
172
+
173
+ end
174
+
175
+ end
@@ -0,0 +1,65 @@
1
+ require File.join(File.dirname(__FILE__), %w(.. spec_helper))
2
+
3
+ describe "manifest:prepare_build_tasks:javascript" do
4
+
5
+ include SC::SpecHelpers
6
+ include SC::ManifestSpecHelpers
7
+
8
+ before do
9
+ std_before
10
+ end
11
+
12
+ def run_task
13
+ @manifest.prepare!
14
+ super('manifest:prepare_build_tasks:javascript')
15
+ end
16
+
17
+ it "should run manifest:prepare_build_tasks:setup as prereq" do
18
+ should_run('manifest:prepare_build_tasks:setup') { run_task }
19
+ end
20
+
21
+ # This rewriting is done to make sure source entries are disambiguated from
22
+ # the generated javascript.js that will live at the root level
23
+ it "rewrites all javascript entries to begin with 'source/...'" do
24
+ run_task
25
+ entries = @manifest.entries.select { |e| e.entry_type == :javascript }
26
+ entries.each do |entry|
27
+ %w(filename url build_path).each do |key|
28
+ entry[key].should =~ /source\//
29
+ end
30
+ end
31
+ end
32
+
33
+ describe "supports require() and sc_require() statements" do
34
+
35
+ it "adds a entry.required property to entrys with empty array of no requires are specified in file" do
36
+ run_task
37
+ entry = entry_for('source/no_require.js')
38
+ entry.required.should == []
39
+ end
40
+
41
+ it "searches files for require() & sc_requires() statements and adds them to entry.required array -- (also should ignore any ext)" do
42
+ run_task
43
+ entry = entry_for('source/has_require.js')
44
+ entry.required.sort.should == ['demo2', 'no_require']
45
+ end
46
+
47
+ end
48
+
49
+ describe "supports sc_resource() statement" do
50
+ it "sets entry.resource = 'javascript' if no sc_resource statement is found in files" do
51
+ run_task
52
+ entry = entry_for('source/no_require.js')
53
+ entry.resource.should == 'javascript'
54
+ end
55
+
56
+ it "searches files for sc_resource() statement and stores last value in entry.resource property" do
57
+ run_task
58
+ entry =entry_for 'source/sc_resource.js'
59
+ entry.resource.should == 'bar'
60
+ end
61
+ end
62
+
63
+
64
+
65
+ end
@@ -0,0 +1,70 @@
1
+ require File.join(File.dirname(__FILE__), %w(.. spec_helper))
2
+
3
+ describe "manifest:prepare_build_tasks:minify" do
4
+
5
+ include SC::SpecHelpers
6
+ include SC::ManifestSpecHelpers
7
+
8
+ before do
9
+ std_before
10
+ end
11
+
12
+ def run_task
13
+ @manifest.prepare!
14
+ super('manifest:prepare_build_tasks:minify')
15
+ end
16
+
17
+ it "should run setup, javascript, css, and combine as prereq" do
18
+ %w(setup javascript css sass combine).each do |task_name|
19
+ should_run("manifest:prepare_build_tasks:#{task_name}") { run_task }
20
+ end
21
+ end
22
+
23
+ describe "minify javascript tasks" do
24
+
25
+ def should_have_minify_javascript_tasks
26
+ entries = @manifest.entries.select { |e| e.entry_type == :javascript }
27
+ entries.each do |entry|
28
+ entry.should be_minified
29
+ entry.should be_transform
30
+ entry.source_entry.entry_type.should == :javascript
31
+ end
32
+ end
33
+
34
+ def should_not_have_minify_javascript_tasks
35
+ entries = @manifest.entries.select { |e| e.entry_type == :javascript }
36
+ entries.each do |entry|
37
+ entry.should_not be_minified
38
+ end
39
+ end
40
+
41
+ it "adds task when CONFIG.minify_javascript == true" do
42
+ @target.config.minify_javascript = true
43
+ run_task
44
+ should_have_minify_javascript_tasks
45
+ end
46
+
47
+ it "adds task when CONFIG.minify == true" do
48
+ @target.config.minify = true
49
+ @target.config.minify_javascript = nil # assume not defined
50
+ run_task
51
+ should_have_minify_javascript_tasks
52
+ end
53
+
54
+ it "does not add task when CONFIG.minify == true but CONFIG.minify_javascript == false" do
55
+ @target.config.minify = true
56
+ @target.config.minify_javascript = false
57
+ run_task
58
+ should_not_have_minify_javascript_tasks
59
+ end
60
+
61
+ it "does not add task when CONFIG.minify == false and CONFIG.minify_javascript is not defined" do
62
+ @target.config.minify = false
63
+ @target.config.minify_javascript = nil
64
+ run_task
65
+ should_not_have_minify_javascript_tasks
66
+ end
67
+
68
+ end
69
+
70
+ end
@@ -0,0 +1,152 @@
1
+ require File.join(File.dirname(__FILE__), %w(.. spec_helper))
2
+
3
+ # Creates packed combined entries for javascript & css
4
+ describe "manifest:prepare_build_tasks:packed" do
5
+
6
+ include SC::SpecHelpers
7
+ include SC::ManifestSpecHelpers
8
+
9
+ before do
10
+ std_before
11
+ end
12
+
13
+ def run_task
14
+ # capture any log warnings...
15
+ @msg = capture('stderr') {
16
+ @manifest.prepare!
17
+ super('manifest:prepare_build_tasks:packed')
18
+ }
19
+ end
20
+
21
+ it "should run setup, combine as prereq" do
22
+ %w(setup combine).each do |task_name|
23
+ should_run("manifest:prepare_build_tasks:#{task_name}") { run_task }
24
+ end
25
+ end
26
+
27
+ it "should not add packed entries for apps" do
28
+ @target = @project.target_for(:contacts)
29
+ @target.target_type.should == :app # precondition
30
+
31
+ @manifest = @target.manifest_for(:language => :en)
32
+ run_task
33
+
34
+ @manifest.entry_for('javascript-packed.js').should be_nil
35
+ @manifest.entry_for('stylesheet-packed.css').should be_nil
36
+ end
37
+
38
+ it "should add packed entries for frameworks" do
39
+ # verify default target is a framework - precondition
40
+ @target.target_type.should == :framework #precondition
41
+ run_task
42
+
43
+ @manifest.entry_for('javascript-packed.js').should_not be_nil
44
+ end
45
+
46
+ #######################################
47
+ # javascript-packed.js support
48
+ #
49
+ describe "javascript-packed.js" do
50
+
51
+ before do
52
+ run_task
53
+ @entry = entry_for('javascript-packed.js')
54
+ end
55
+
56
+ it "should generate a javascript-packed.js entry" do
57
+ @entry.should_not be_nil
58
+ end
59
+
60
+ it "should include javascript.js entries from all required targets" do
61
+ @entry.source_entries.size.should > 0
62
+ @entry.source_entries.each do |entry|
63
+ entry.filename.should == 'javascript.js'
64
+ end
65
+ end
66
+
67
+ it "should include ordered_entries ordered by required target order" do
68
+
69
+ # find targets, sorted by order. remove any that don't have a
70
+ # javascript.js entry.
71
+ targets = @target.expand_required_targets + [@target]
72
+ variation = @entry.manifest.variation
73
+ targets.reject! do |t|
74
+ t.manifest_for(variation).build!.entry_for('javascript.js').nil?
75
+ end
76
+
77
+ @entry.ordered_entries.each do |entry|
78
+ entry.target.should == targets.shift
79
+ end
80
+ end
81
+
82
+ it "should include the actual targets this packed version covers in the targets property (even those w no javascript.js)" do
83
+ targets = @target.expand_required_targets + [@target]
84
+ @entry.targets.should == targets
85
+ end
86
+
87
+ it "should NOT include minified source entries" do
88
+ @entry.source_entries.each do |entry|
89
+ entry.should_not be_minified
90
+ end
91
+ end
92
+
93
+ it "should be marked as packed" do
94
+ @entry.should be_packed
95
+ end
96
+
97
+ end
98
+
99
+ #######################################
100
+ # stylesheet-packed.css support
101
+ #
102
+ describe "stylesheet-packed.css" do
103
+
104
+ before do
105
+ run_task
106
+ @entry = entry_for('stylesheet-packed.css')
107
+ end
108
+
109
+ it "should generate a stylesheet-packed.css entry" do
110
+ @entry.should_not be_nil
111
+ end
112
+
113
+ it "should include stylesheet.css entries from all required targets" do
114
+ @entry.source_entries.size.should > 0
115
+ @entry.source_entries.each do |entry|
116
+ entry.filename.should == 'stylesheet.css'
117
+ end
118
+ end
119
+
120
+ it "should include ordered_entries ordered by required target order" do
121
+
122
+ # find targets, sorted by order. remove any that don't have a
123
+ # javascript.js entry.
124
+ targets = @target.expand_required_targets + [@target]
125
+ variation = @entry.manifest.variation
126
+ targets.reject! do |t|
127
+ t.manifest_for(variation).build!.entry_for('stylesheet.css').nil?
128
+ end
129
+
130
+ @entry.ordered_entries.each do |entry|
131
+ entry.target.should == targets.shift
132
+ end
133
+ end
134
+
135
+ it "should include the actual targets this packed version covers in the targets property (even those w no stylesheet.css)" do
136
+ targets = @target.expand_required_targets + [@target]
137
+ @entry.targets.should == targets
138
+ end
139
+
140
+ it "should NOT include minified source entries" do
141
+ @entry.source_entries.each do |entry|
142
+ entry.should_not be_minified
143
+ end
144
+ end
145
+
146
+ it "should be marked as packed" do
147
+ @entry.should be_packed
148
+ end
149
+
150
+ end
151
+
152
+ end