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.
- data/Buildfile +115 -0
- data/History.txt +7 -0
- data/README.txt +102 -0
- data/Rakefile +54 -0
- data/Todo.txt +1 -0
- data/bin/sc-build +13 -0
- data/bin/sc-build-number +13 -0
- data/bin/sc-gen +13 -0
- data/bin/sc-init +13 -0
- data/bin/sc-manifest +13 -0
- data/bin/sc-server +13 -0
- data/bin/sproutcore +14 -0
- data/buildtasks/build.rake +73 -0
- data/buildtasks/entry.rake +59 -0
- data/buildtasks/manifest.rake +469 -0
- data/buildtasks/render.rake +21 -0
- data/buildtasks/target.rake +42 -0
- data/gen/Buildfile +16 -0
- data/gen/app/Buildfile +36 -0
- data/gen/app/README +1 -0
- data/gen/app/USAGE +13 -0
- data/gen/app/templates/apps/{target_name}/core.js +27 -0
- data/gen/app/templates/apps/{target_name}/english.lproj/loading.rhtml +9 -0
- data/gen/app/templates/apps/{target_name}/english.lproj/main_page.js +22 -0
- data/gen/app/templates/apps/{target_name}/english.lproj/strings.js +15 -0
- data/gen/app/templates/apps/{target_name}/main.js +30 -0
- data/gen/controller/Buildfile +18 -0
- data/gen/controller/README +1 -0
- data/gen/controller/USAGE +13 -0
- data/gen/controller/templates/controllers/{filename}.js +18 -0
- data/gen/controller/templates/tests/controllers/{filename}.js +15 -0
- data/gen/framework/Buildfile +36 -0
- data/gen/framework/README +1 -0
- data/gen/framework/USAGE +13 -0
- data/gen/framework/templates/frameworks/{target_name}/core.js +21 -0
- data/gen/framework/templates/frameworks/{target_name}/english.lproj/strings.js +15 -0
- data/gen/language/Buildfile +26 -0
- data/gen/language/README +1 -0
- data/gen/language/USAGE +13 -0
- data/gen/language/templates/{filename}/strings.js +14 -0
- data/gen/model/Buildfile +16 -0
- data/gen/model/README +1 -0
- data/gen/model/USAGE +15 -0
- data/gen/model/templates/fixtures/{filename}.js +35 -0
- data/gen/model/templates/models/{filename}.js +19 -0
- data/gen/model/templates/tests/models/{filename}.js +15 -0
- data/gen/project/Buildfile +45 -0
- data/gen/project/INIT +3 -0
- data/gen/project/README +1 -0
- data/gen/project/USAGE +2 -0
- data/gen/project/templates/{filename}/Buildfile +7 -0
- data/gen/project/templates/{filename}/README +7 -0
- data/gen/test/Buildfile +25 -0
- data/gen/test/README +1 -0
- data/gen/test/USAGE +12 -0
- data/gen/test/templates/tests/{filename}.js +15 -0
- data/gen/theme/Buildfile +36 -0
- data/gen/theme/README +1 -0
- data/gen/theme/USAGE +13 -0
- data/gen/theme/templates/themes/{target_name}/english.lproj/strings.js +15 -0
- data/gen/view/Buildfile +18 -0
- data/gen/view/README +1 -0
- data/gen/view/USAGE +13 -0
- data/gen/view/templates/tests/views/{filename}.js +15 -0
- data/gen/view/templates/views/{filename}.js +18 -0
- data/lib/sproutcore.rb +130 -0
- data/lib/sproutcore/builders/base.rb +79 -0
- data/lib/sproutcore/builders/combine.rb +37 -0
- data/lib/sproutcore/builders/html.rb +177 -0
- data/lib/sproutcore/builders/javascript.rb +55 -0
- data/lib/sproutcore/builders/minify.rb +67 -0
- data/lib/sproutcore/builders/sass.rb +55 -0
- data/lib/sproutcore/builders/strings.rb +44 -0
- data/lib/sproutcore/builders/stylesheet.rb +40 -0
- data/lib/sproutcore/builders/test.rb +58 -0
- data/lib/sproutcore/builders/test_index.rb +26 -0
- data/lib/sproutcore/buildfile.rb +483 -0
- data/lib/sproutcore/buildfile/build_task.rb +33 -0
- data/lib/sproutcore/buildfile/buildfile_dsl.rb +162 -0
- data/lib/sproutcore/buildfile/cloneable.rb +34 -0
- data/lib/sproutcore/buildfile/early_time.rb +29 -0
- data/lib/sproutcore/buildfile/invocation_chain.rb +64 -0
- data/lib/sproutcore/buildfile/namespace.rb +33 -0
- data/lib/sproutcore/buildfile/string_ext.rb +198 -0
- data/lib/sproutcore/buildfile/task.rb +304 -0
- data/lib/sproutcore/buildfile/task_arguments.rb +86 -0
- data/lib/sproutcore/buildfile/task_manager.rb +193 -0
- data/lib/sproutcore/deprecated/view_helper.rb +662 -0
- data/lib/sproutcore/helpers/capture_helper.rb +30 -0
- data/lib/sproutcore/helpers/cssmin.rb +202 -0
- data/lib/sproutcore/helpers/dom_id_helper.rb +21 -0
- data/lib/sproutcore/helpers/entry_sorter.rb +105 -0
- data/lib/sproutcore/helpers/packed_optimizer.rb +102 -0
- data/lib/sproutcore/helpers/static_helper.rb +268 -0
- data/lib/sproutcore/helpers/tag_helper.rb +117 -0
- data/lib/sproutcore/helpers/text_helper.rb +303 -0
- data/lib/sproutcore/models/generator.rb +493 -0
- data/lib/sproutcore/models/hash_struct.rb +109 -0
- data/lib/sproutcore/models/manifest.rb +342 -0
- data/lib/sproutcore/models/manifest_entry.rb +232 -0
- data/lib/sproutcore/models/project.rb +270 -0
- data/lib/sproutcore/models/target.rb +403 -0
- data/lib/sproutcore/rack/builder.rb +269 -0
- data/lib/sproutcore/rack/dev.rb +51 -0
- data/lib/sproutcore/rack/docs.rb +24 -0
- data/lib/sproutcore/rack/proxy.rb +92 -0
- data/lib/sproutcore/rack/service.rb +141 -0
- data/lib/sproutcore/rack/test_runner.rb +24 -0
- data/lib/sproutcore/render_engines/erubis.rb +55 -0
- data/lib/sproutcore/render_engines/haml.rb +39 -0
- data/lib/sproutcore/tools.rb +311 -0
- data/lib/sproutcore/tools/build.rb +80 -0
- data/lib/sproutcore/tools/build_number.rb +23 -0
- data/lib/sproutcore/tools/gen.rb +99 -0
- data/lib/sproutcore/tools/init.rb +40 -0
- data/lib/sproutcore/tools/manifest.rb +84 -0
- data/lib/sproutcore/tools/server.rb +45 -0
- data/spec/buildtasks/build/copy_spec.rb +60 -0
- data/spec/buildtasks/build/spec_helper.rb +36 -0
- data/spec/buildtasks/manifest/catalog_spec.rb +48 -0
- data/spec/buildtasks/manifest/hide_buildfiles_spec.rb +125 -0
- data/spec/buildtasks/manifest/localize_spec.rb +97 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +246 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/css_spec.rb +87 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/html_spec.rb +175 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/javascript_spec.rb +65 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/minify_spec.rb +70 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +152 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/sass_spec.rb +98 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/strings_spec.rb +64 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/tests_spec.rb +163 -0
- data/spec/buildtasks/manifest/prepare_spec.rb +43 -0
- data/spec/buildtasks/manifest/spec_helper.rb +35 -0
- data/spec/buildtasks/target_spec.rb +214 -0
- data/spec/fixtures/builder_tests/Buildfile +15 -0
- data/spec/fixtures/builder_tests/apps/combine_test/a.js +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/b.js +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/c.js +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/a.css +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/b.css +1 -0
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/c.css +1 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/bar1_sample.rhtml +2 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/erb_sample.html.erb +1 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/icons/image.png +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/image.jpg +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/rhtml_sample.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/strings.js +4 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/style.css +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/french.lproj/french-icons/fr.png +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/french.lproj/strings.js +4 -0
- data/spec/fixtures/builder_tests/apps/html_test/lib/layout_template.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/html_test/scripts.js +0 -0
- data/spec/fixtures/builder_tests/apps/javascript_test/sc_static.js +15 -0
- data/spec/fixtures/builder_tests/apps/javascript_test/sc_super.js +4 -0
- data/spec/fixtures/builder_tests/apps/javascript_test/strings.js +7 -0
- data/spec/fixtures/builder_tests/apps/sass_test/sample.sass +3 -0
- data/spec/fixtures/builder_tests/apps/strings_test/lproj/strings.js +8 -0
- data/spec/fixtures/builder_tests/apps/stylesheet_test/build_directives.css +9 -0
- data/spec/fixtures/builder_tests/apps/stylesheet_test/sc_static.css +12 -0
- data/spec/fixtures/builder_tests/apps/test_test/lib/alt_layout.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/test_test/lib/test_layout.rhtml +3 -0
- data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test.js +1 -0
- data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test2.js +1 -0
- data/spec/fixtures/builder_tests/apps/test_test/tests/rhtml_test.rhtml +4 -0
- data/spec/fixtures/builder_tests/frameworks/debug/core.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/debug/english.lproj/dummy.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/qunit/core.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/qunit/english.lproj/dummy.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/strings.js +4 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/test.rhtml +1 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/req_js_1.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/english.lproj/req_style_2.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/english.lproj/test.rhtml +1 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/javascript.js +1 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/lib/alt_layout.rhtml +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/req_js_2.js +0 -0
- data/spec/fixtures/builder_tests/themes/sample_theme/Buildfile +1 -0
- data/spec/fixtures/buildfiles/basic/Buildfile +16 -0
- data/spec/fixtures/buildfiles/basic/task_module.rake +6 -0
- data/spec/fixtures/buildfiles/installed/Buildfile +7 -0
- data/spec/fixtures/buildfiles/installed/Buildfile2 +5 -0
- data/spec/fixtures/buildfiles/project_test/Buildfile +4 -0
- data/spec/fixtures/buildfiles/project_test/not_project/Buildfile +2 -0
- data/spec/fixtures/buildfiles/project_test/not_project/child/PLACEHOLDER +0 -0
- data/spec/fixtures/entry_for_project/Buildfile +1 -0
- data/spec/fixtures/entry_for_project/apps/test_app/entry.txt +0 -0
- data/spec/fixtures/entry_for_project/apps/test_app/frameworks/nested/PLACEHOLDER +0 -0
- data/spec/fixtures/entry_for_project/frameworks/shared/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/Buildfile +8 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/bars/bar1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/bars/bar2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/foos/foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/foos/foo2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/Buildfile +5 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/custom_foodir/foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/custom_foodir/foo2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/foos/not_foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/foo1/bars/bar1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/foo1/bars/bar2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/nested/Buildfile +8 -0
- data/spec/fixtures/find_targets/nested/apps/app1/Buildfile +1 -0
- data/spec/fixtures/find_targets/nested/apps/app1/apps/nested_app/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/Apps/app1/frameworks/framework1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/Apps/app1/frameworks/framework2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/clients/client1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/frameworks/framework1/frameworks/framework1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/frameworks/framework2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/themes/theme1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/themes/theme2/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/English.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/FreNCH.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/UnknOWN.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/english.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/french.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/german.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/italian.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/japanese.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/spanish.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/unknown.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/no_names/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/de.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-CA.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-GB.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-US.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/es.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/foo.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/fr.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/it.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/ja.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/1.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/B.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/a.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/a/a.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/a/b.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/b/a.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/c.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/core.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/B.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a/b.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/b/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/c.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/lproj/strings.js +1 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/utils.js +1 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/a.js +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/b.js +3 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/c.js +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/a.css +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/b.css +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/c.css +2 -0
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/d.js +1 -0
- data/spec/fixtures/real_world/Buildfile +12 -0
- data/spec/fixtures/real_world/apps/account/README +1 -0
- data/spec/fixtures/real_world/apps/calendar/README +1 -0
- data/spec/fixtures/real_world/apps/contacts/README_BEFORE_EDITING +1 -0
- data/spec/fixtures/real_world/apps/files/README +1 -0
- data/spec/fixtures/real_world/apps/mail/README +1 -0
- data/spec/fixtures/real_world/apps/mobile_photos/README +1 -0
- data/spec/fixtures/real_world/apps/photos/README +1 -0
- data/spec/fixtures/real_world/apps/uploader/README +1 -0
- data/spec/fixtures/real_world/frameworks/core_files/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/core_photos/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/shared/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +26 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/README +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/apps/test_runner/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/core.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/debug/debug-resource.html +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/debug/sample_debug.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/demo2.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/debug/sample_debug-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.css +4 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.html +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo2.sass +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.haml +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.html.erb +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.rhtml +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/fixtures/sample_fixtures-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/has_require.css +4 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_require.css +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_sc_resource.rhtml +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/protocols/sample-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.css +6 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.rhtml +3 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/strings.js +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/tests/sample-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/fixtures/sample-json-fixture.json +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/fixtures/sample_fixtures.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/application/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/costello/core.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/data_store/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/debug/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/desktop/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/empty_theme/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/foundation/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/mobile/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/qunit/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/uploader/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/french.lproj/french-resource.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/french.lproj/strings.js +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/german.lproj/german-resource.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/german.lproj/strings.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/has_require.js +4 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/lib/index.html +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/no_require.js +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/protocols/sample.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/sc_resource.js +6 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/nested/sample1.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/nested/sample2.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/sample.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/sample.rhtml +1 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/themes/standard_theme/README +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/views/view.js +1 -0
- data/spec/fixtures/real_world/generators/sample_custom/Buildfile +0 -0
- data/spec/fixtures/real_world/generators/sample_custom/templates/{filename}.js +1 -0
- data/spec/fixtures/recursive_project/Buildfile +8 -0
- data/spec/fixtures/recursive_project/frameworks/sproutcore/frameworks/costello/PLACEHOLDER +0 -0
- data/spec/lib/builders/combine_spec.rb +67 -0
- data/spec/lib/builders/html_spec.rb +577 -0
- data/spec/lib/builders/javascript_spec.rb +81 -0
- data/spec/lib/builders/sass_spec.rb +43 -0
- data/spec/lib/builders/spec_helper.rb +30 -0
- data/spec/lib/builders/strings_spec.rb +52 -0
- data/spec/lib/builders/stylesheet_spec.rb +63 -0
- data/spec/lib/builders/test_index_spec.rb +44 -0
- data/spec/lib/builders/test_spec.rb +135 -0
- data/spec/lib/buildfile/config_for_spec.rb +81 -0
- data/spec/lib/buildfile/define_spec.rb +59 -0
- data/spec/lib/buildfile/dup_spec.rb +65 -0
- data/spec/lib/buildfile/invoke_spec.rb +130 -0
- data/spec/lib/buildfile/load_spec.rb +49 -0
- data/spec/lib/buildfile/task/dup_spec.rb +55 -0
- data/spec/lib/buildfile/task_defined_spec.rb +17 -0
- data/spec/lib/buildfile_commands/build_task_spec.rb +19 -0
- data/spec/lib/buildfile_commands/config_spec.rb +97 -0
- data/spec/lib/buildfile_commands/import_spec.rb +17 -0
- data/spec/lib/buildfile_commands/namespace_spec.rb +18 -0
- data/spec/lib/buildfile_commands/proxies_spec.rb +38 -0
- data/spec/lib/buildfile_commands/replace_task_spec.rb +29 -0
- data/spec/lib/buildfile_commands/task_spec.rb +36 -0
- data/spec/lib/helpers/packing_optimizer/optimize_spec.rb +26 -0
- data/spec/lib/models/hash_struct/deep_clone_spec.rb +27 -0
- data/spec/lib/models/hash_struct/has_options_spec.rb +32 -0
- data/spec/lib/models/hash_struct/hash_spec.rb +64 -0
- data/spec/lib/models/hash_struct/merge_spec.rb +26 -0
- data/spec/lib/models/hash_struct/method_missing.rb +41 -0
- data/spec/lib/models/manifest/add_entry_spec.rb +36 -0
- data/spec/lib/models/manifest/add_transform_spec.rb +90 -0
- data/spec/lib/models/manifest/build_spec.rb +78 -0
- data/spec/lib/models/manifest/entry_for_spec.rb +94 -0
- data/spec/lib/models/manifest/find_entry.rb +84 -0
- data/spec/lib/models/manifest/prepare_spec.rb +62 -0
- data/spec/lib/models/manifest_entry/cacheable_url_spec.rb +31 -0
- data/spec/lib/models/manifest_entry/prepare_spec.rb +54 -0
- data/spec/lib/models/project/add_target_spec.rb +44 -0
- data/spec/lib/models/project/buildfile_spec.rb +35 -0
- data/spec/lib/models/project/find_targets_for_spec.rb +77 -0
- data/spec/lib/models/project/load_nearest_project_spec.rb +23 -0
- data/spec/lib/models/project/target_for_spec.rb +33 -0
- data/spec/lib/models/project/targets_spec.rb +62 -0
- data/spec/lib/models/target/compute_build_number_spec.rb +125 -0
- data/spec/lib/models/target/config_spec.rb +30 -0
- data/spec/lib/models/target/expand_required_targets_spec.rb +48 -0
- data/spec/lib/models/target/installed_languages_spec.rb +47 -0
- data/spec/lib/models/target/lproj_for_spec.rb +38 -0
- data/spec/lib/models/target/manifest_for_spec.rb +42 -0
- data/spec/lib/models/target/parent_target_spec.rb +21 -0
- data/spec/lib/models/target/prepare_spec.rb +53 -0
- data/spec/lib/models/target/required_targets_spec.rb +119 -0
- data/spec/lib/models/target/target_for_spec.rb +56 -0
- data/spec/lib/tools/build_number_spec.rb +28 -0
- data/spec/lib/tools/gen_spec.rb +207 -0
- data/spec/lib/tools/tools_spec.rb +78 -0
- data/spec/spec_helper.rb +138 -0
- data/sproutcore.gemspec +47 -0
- data/vendor/github_gem_lint.rb +22 -0
- data/vendor/yui-compressor/yuicompressor-2.4.2.jar +0 -0
- metadata +1084 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'config' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
before do
|
8
|
+
@project = fixture_project(:real_world)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pickup global config setting when target does not override" do
|
12
|
+
# required property is defined in real_world/Buildfile
|
13
|
+
@target = @project.target_for :contacts
|
14
|
+
@target.config.required.should eql(:sproutcore)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should pickup config setting overidden in target's Buildfile config" do
|
18
|
+
# define in real_world/frameworks/sproutcore/Buildfile
|
19
|
+
@target = @project.target_for :sproutcore
|
20
|
+
@target.config.required.should eql(:desktop)
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should pickup config from parent buildfiles" do
|
25
|
+
# define in real_world/frameworks/sproutcore/Buildfile
|
26
|
+
@target = @project.target_for 'sproutcore/foundation'
|
27
|
+
@target.config.required.should eql(:costello)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'expand_required_targets' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
it "should return all of targets required by a target in proper order" do
|
8
|
+
@project = fixture_project(:real_world)
|
9
|
+
target = @project.target_for :sproutcore
|
10
|
+
required = target.expand_required_targets.map { |x| x.target_name }
|
11
|
+
required.should eql([
|
12
|
+
:"/sproutcore/costello",
|
13
|
+
:"/sproutcore/foundation",
|
14
|
+
:"/sproutcore/application",
|
15
|
+
:"/sproutcore/data_store",
|
16
|
+
:"/sproutcore/desktop"])
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should still return a valid response even with a recursive project" do
|
20
|
+
@project = fixture_project(:recursive_project)
|
21
|
+
target = @project.target_for :sproutcore
|
22
|
+
|
23
|
+
required = nil
|
24
|
+
lambda { required = target.expand_required_targets }.should_not raise_error
|
25
|
+
|
26
|
+
required.map! { |x| x.target_name }
|
27
|
+
required.should eql([:'/sproutcore/costello'])
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should include test or debug required if passed as options" do
|
31
|
+
@project = fixture_project(:real_world)
|
32
|
+
target = @project.target_for :sproutcore
|
33
|
+
target.config.debug_required = 'sproutcore/debug'
|
34
|
+
target.config.test_required = 'sproutcore/qunit'
|
35
|
+
|
36
|
+
debug_expected = @project.target_for 'sproutcore/debug'
|
37
|
+
test_expected = @project.target_for 'sproutcore/qunit'
|
38
|
+
|
39
|
+
target.expand_required_targets().should_not include(debug_expected)
|
40
|
+
target.expand_required_targets(:debug => false ).should_not include(debug_expected)
|
41
|
+
target.expand_required_targets(:debug => true).should include(debug_expected)
|
42
|
+
|
43
|
+
target.expand_required_targets().should_not include(test_expected)
|
44
|
+
target.expand_required_targets(:test => false ).should_not include(test_expected)
|
45
|
+
target.expand_required_targets(:test => true).should include(test_expected)
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'installed_languages' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
before do
|
8
|
+
@project = fixture_project 'languages'
|
9
|
+
end
|
10
|
+
|
11
|
+
def langs(langs)
|
12
|
+
langs.map { |l| l.to_s }.sort.map { |l| l.to_sym }
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should detect all installed languages with short names" do
|
16
|
+
expected = langs %w(de en-CA en-GB en-US en es foo fr it ja)
|
17
|
+
@short_names = @project.target_for :short_names
|
18
|
+
@short_names.installed_languages.should eql(expected)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should map long languages to short names, and pass through others" do
|
22
|
+
expected = langs %w(en fr de it ja es unknown)
|
23
|
+
@long_names = @project.target_for :long_names
|
24
|
+
@long_names.installed_languages.should eql(expected)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should always return the preferred language, even if no languages" do
|
28
|
+
@no_names = @project.target_for :no_names
|
29
|
+
@no_names.installed_languages.should eql([:en])
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should ignore case for long names and respect case for unknown" do
|
33
|
+
@long_names = @project.target_for :caps_long_names
|
34
|
+
@long_names.installed_languages.should eql([:en, :fr, :UnknOWN])
|
35
|
+
end
|
36
|
+
|
37
|
+
# NOTE: This is the same test as above, but it is placed here to test
|
38
|
+
# case-sensitivity explicitly. On some platforms, sorting will differ
|
39
|
+
# depending on the case...
|
40
|
+
it "should always return names using case insensitive sort" do
|
41
|
+
@long_names = @project.target_for :caps_long_names
|
42
|
+
@long_names.installed_languages.should eql([:en, :fr, :UnknOWN])
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'lproj_for' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
before do
|
8
|
+
@project = fixture_project 'languages'
|
9
|
+
@long_names = @project.target_for :long_names
|
10
|
+
@short_names = @project.target_for :short_names
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
it "should return the long name of a language if installed" do
|
15
|
+
SC::Target::SHORT_LANGUAGE_MAP.each do |short_name, long_name|
|
16
|
+
@long_names.lproj_for(short_name.to_sym).should eql("#{long_name}.lproj")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should return the short name of a language if installed" do
|
21
|
+
SC::Target::SHORT_LANGUAGE_MAP.each do |short_name, long_name|
|
22
|
+
@short_names.lproj_for(short_name.to_sym).should eql("#{short_name}.lproj")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return the language name if installed + no explicit mapping" do
|
27
|
+
@short_names.lproj_for('en-GB').should eql('en-GB.lproj')
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should return nil for a non-existant language" do
|
31
|
+
@short_names.lproj_for('imaginary').should be_nil
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should return long language name if no mapping is known" do
|
35
|
+
@long_names.lproj_for(:unknown).should eql('unknown.lproj')
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'manifest_for' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
before do
|
8
|
+
@project = fixture_project(:real_world)
|
9
|
+
@target = @project.target_for :sproutcore
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should return a new manifest instance for a new variation with variation properties set" do
|
13
|
+
manifest = @target.manifest_for :language => :en
|
14
|
+
manifest.should_not be_nil
|
15
|
+
manifest.language.should eql(:en)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return the same manifest instance for the same variation" do
|
19
|
+
manifest_en = @target.manifest_for :language => :en
|
20
|
+
manifest_fr = @target.manifest_for :language => :fr
|
21
|
+
|
22
|
+
@target.manifest_for(:language => :en).should eql(manifest_en)
|
23
|
+
@target.manifest_for(:language => :fr).should eql(manifest_fr)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return first manifest matching variation if multiples match" do
|
27
|
+
manifest1 = @target.manifest_for :language => :en, :vers => 1
|
28
|
+
manifest2 = @target.manifest_for :language => :en, :vers => 2
|
29
|
+
|
30
|
+
found = @target.manifest_for(:language => :en)
|
31
|
+
found.vers.should eql(1)
|
32
|
+
end
|
33
|
+
|
34
|
+
# IMPORTANT: This condition is assumed by the manifest/prepare_spec.
|
35
|
+
it "should NOT call prepare! when creating a new manifest" do
|
36
|
+
manifest = @target.manifest_for :language => :en
|
37
|
+
manifest.prepared?.should be_false
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'parent_target' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
before do
|
8
|
+
@project = fixture_project(:real_world)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return next direct parent when nested" do
|
12
|
+
target = @project.target_for('sproutcore/costello')
|
13
|
+
target.parent_target.should eql(@project.target_for(:sproutcore))
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should return project if top-level" do
|
17
|
+
target = @project.target_for(:sproutcore)
|
18
|
+
target.parent_target.should eql(@project)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'prepare!' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
before do
|
8
|
+
@project = fixture_project(:real_world)
|
9
|
+
|
10
|
+
# get target from project manually since target_for() calls prepare!
|
11
|
+
@target = @project.targets['/contacts']
|
12
|
+
|
13
|
+
@target.buildfile.define! do
|
14
|
+
replace_task 'target:prepare' do
|
15
|
+
TARGET.task_did_run = (TARGET.task_did_run || 0) + 1
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should return self" do
|
22
|
+
@target.prepare!.should eql(@target)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should execute target:prepare if defined" do
|
26
|
+
@target.prepared?.should be_false # check precondition
|
27
|
+
@target.prepare!
|
28
|
+
@target.prepared?.should be_true
|
29
|
+
@target.task_did_run.should eql(1) # ran?
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should do nothing if target:prepare is not defined" do
|
33
|
+
|
34
|
+
# get an empty project with no build tasks...
|
35
|
+
project = empty_project
|
36
|
+
project.add_target '/default', :default, :source_root => project.project_root
|
37
|
+
target = project.targets['/default']
|
38
|
+
target.buildfile.lookup('target:prepare').should be_nil
|
39
|
+
|
40
|
+
lambda { target.prepare! }.should_not raise_error
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should execute target:prepare only once" do
|
45
|
+
@target.prepared?.should be_false # check precondition
|
46
|
+
@target.prepare!.prepare!.prepare!
|
47
|
+
@target.prepared?.should be_true
|
48
|
+
@target.task_did_run.should eql(1) # ran only once?
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'required_targets' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
before do
|
8
|
+
@project = fixture_project(:real_world)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should resolve references to child targets" do
|
12
|
+
target = @project.target_for :sproutcore
|
13
|
+
|
14
|
+
# verify precondition
|
15
|
+
# -- the required property should NOT be array ...
|
16
|
+
target.config.required.should eql(:desktop)
|
17
|
+
|
18
|
+
expected = @project.target_for('sproutcore/desktop')
|
19
|
+
|
20
|
+
target.required_targets.size.should eql(1)
|
21
|
+
target.required_targets.first.should eql(expected)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should resolve references to siblings" do
|
25
|
+
target = @project.target_for 'sproutcore/application'
|
26
|
+
|
27
|
+
# verify precondition
|
28
|
+
# -- the required config should be an array
|
29
|
+
target.config.required.size.should eql(2)
|
30
|
+
|
31
|
+
expected = @project.target_for('sproutcore/costello')
|
32
|
+
target.required_targets.size.should eql(2)
|
33
|
+
target.required_targets.should include(expected)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should resolve references to other subtargets" do
|
37
|
+
target = @project.target_for :mobile_photos
|
38
|
+
target.required_targets.size.should eql(1)
|
39
|
+
|
40
|
+
expected = @project.target_for('sproutcore/mobile')
|
41
|
+
target.required_targets.first.should eql(expected)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should include any debug_required if passed :debug => true" do
|
45
|
+
|
46
|
+
expected = @project.target_for 'sproutcore/debug'
|
47
|
+
|
48
|
+
# verify load_debug = false
|
49
|
+
target = @project.target_for 'sproutcore/desktop'
|
50
|
+
target.config.debug_required = 'sproutcore/debug'
|
51
|
+
target.required_targets().should_not include(expected)
|
52
|
+
target.required_targets(:debug => false).should_not include(expected)
|
53
|
+
target.required_targets(:debug => true).should include(expected)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should include any test_required if passed :test => true" do
|
57
|
+
|
58
|
+
expected = @project.target_for 'sproutcore/qunit'
|
59
|
+
|
60
|
+
# verify load_debug = false
|
61
|
+
target = @project.target_for 'sproutcore/desktop'
|
62
|
+
target.config.test_required = 'sproutcore/qunit'
|
63
|
+
target.required_targets().should_not include(expected)
|
64
|
+
target.required_targets(:test => false).should_not include(expected)
|
65
|
+
target.required_targets(:test => true).should include(expected)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should log a warning if a required test or debug target could not be found" do
|
69
|
+
target = @project.target_for :sproutcore
|
70
|
+
target.config.test_required = 'imaginary_foo'
|
71
|
+
target.config.debug_required = 'imaginary_bar'
|
72
|
+
|
73
|
+
capture('stderr') { target.required_targets(:test => true) }.size.should_not == 0
|
74
|
+
capture('stderr') { target.required_targets(:debug => true) }.size.should_not == 0
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should include any CONFIG.theme if passed :theme => true && target_type == :app" do
|
78
|
+
expected = @project.target_for 'sproutcore/standard_theme'
|
79
|
+
|
80
|
+
target = @project.target_for :contacts
|
81
|
+
target.target_type.should == :app # precondition
|
82
|
+
target.config.theme = 'sproutcore/standard_theme'
|
83
|
+
target.required_targets().should_not include(expected)
|
84
|
+
target.required_targets(:theme => false).should_not include(expected)
|
85
|
+
target.required_targets(:theme => true).should include(expected)
|
86
|
+
|
87
|
+
target = @project.target_for :sproutcore
|
88
|
+
target.target_type.should_not == :app # precondition
|
89
|
+
target.config.theme = 'sproutcore/standard_theme'
|
90
|
+
target.required_targets().should_not include(expected)
|
91
|
+
target.required_targets(:theme => false).should_not include(expected)
|
92
|
+
target.required_targets(:theme => true).should_not include(expected)
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should only find targets with a target type of :theme for CONFIG.theme" do
|
96
|
+
# theme type
|
97
|
+
expected = @project.target_for 'sproutcore/standard_theme'
|
98
|
+
expected.target_type.should == :theme #precondition
|
99
|
+
|
100
|
+
target = @project.target_for :contacts
|
101
|
+
target.config.theme = 'sproutcore/standard_theme'
|
102
|
+
target.required_targets(:theme => true).should include(expected)
|
103
|
+
|
104
|
+
# non-theme type
|
105
|
+
expected = @project.target_for 'sproutcore/costello'
|
106
|
+
expected.target_type.should_not == :theme #precondition
|
107
|
+
|
108
|
+
target = @project.target_for :calendar
|
109
|
+
target.config.theme = 'sproutcore/costello'
|
110
|
+
|
111
|
+
# should warn!
|
112
|
+
result = nil
|
113
|
+
capture('stderr') { result = target.required_targets(:theme => true) }.size.should > 0
|
114
|
+
|
115
|
+
# and should not include theme
|
116
|
+
result.should_not include(expected)
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. .. spec_helper])
|
2
|
+
|
3
|
+
describe SC::Target, 'target_for' do
|
4
|
+
|
5
|
+
include SC::SpecHelpers
|
6
|
+
|
7
|
+
before do
|
8
|
+
@project = fixture_project(:real_world)
|
9
|
+
@target = @project.target_for(:sproutcore)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should lookup absolute target names (/foo) from the top" do
|
13
|
+
target = @target.target_for('/contacts')
|
14
|
+
target.should_not be_nil
|
15
|
+
target.target_name.to_s.should eql('/contacts')
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should look for relative names in children first" do
|
19
|
+
# note: uploader should exist both in /apps and /sproutcore/frameworks
|
20
|
+
target = @target.target_for(:uploader)
|
21
|
+
target.should_not be_nil
|
22
|
+
target.target_name.to_s.should eql('/sproutcore/uploader')
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should look for relative names in sibling after children" do
|
26
|
+
target = @target.target_for(:core_photos)
|
27
|
+
target.should_not be_nil
|
28
|
+
target.target_name.to_s.should eql('/core_photos')
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should look for relative names in parents after siblings" do
|
32
|
+
@target = @project.target_for('sproutcore/costello')
|
33
|
+
target = @target.target_for(:contacts)
|
34
|
+
target.should_not be_nil
|
35
|
+
target.target_name.to_s.should eql('/contacts')
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should not find nested targets without naming parents" do
|
39
|
+
@target = @project.target_for(:contacts)
|
40
|
+
target = @target.target_for(:costello)
|
41
|
+
target.should be_nil
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should be able to handle multiple/relative/names" do
|
45
|
+
@target = @project.target_for(:contacts)
|
46
|
+
target = @target.target_for('sproutcore/costello')
|
47
|
+
target.should_not be_nil
|
48
|
+
target.target_name.to_s.should eql('/sproutcore/costello')
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should return nil if no matching target could be found" do
|
52
|
+
target = @target.target_for(:does_not_exist)
|
53
|
+
target.should be_nil
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|