haml_ejs 0.0.1
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/.yardopts +11 -0
- data/CONTRIBUTING +3 -0
- data/MIT-LICENSE +20 -0
- data/README.md +68 -0
- data/Rakefile +419 -0
- data/VERSION +1 -0
- data/VERSION_NAME +1 -0
- data/bin/haml +9 -0
- data/bin/html2haml +7 -0
- data/extra/update_watch.rb +13 -0
- data/init.rb +18 -0
- data/lib/haml.rb +49 -0
- data/lib/haml/buffer.rb +297 -0
- data/lib/haml/compiler.rb +486 -0
- data/lib/haml/engine.rb +312 -0
- data/lib/haml/error.rb +22 -0
- data/lib/haml/exec.rb +362 -0
- data/lib/haml/filters.rb +388 -0
- data/lib/haml/haml_ejs.rb +57 -0
- data/lib/haml/helpers.rb +608 -0
- data/lib/haml/helpers/action_view_extensions.rb +57 -0
- data/lib/haml/helpers/action_view_mods.rb +257 -0
- data/lib/haml/helpers/xss_mods.rb +165 -0
- data/lib/haml/html.rb +412 -0
- data/lib/haml/html/erb.rb +141 -0
- data/lib/haml/parser.rb +760 -0
- data/lib/haml/railtie.rb +19 -0
- data/lib/haml/root.rb +7 -0
- data/lib/haml/shared.rb +78 -0
- data/lib/haml/template.rb +99 -0
- data/lib/haml/template/options.rb +16 -0
- data/lib/haml/template/patch.rb +58 -0
- data/lib/haml/template/plugin.rb +123 -0
- data/lib/haml/util.rb +842 -0
- data/lib/haml/version.rb +109 -0
- data/lib/sass.rb +8 -0
- data/lib/sass/plugin.rb +10 -0
- data/lib/sass/rails2_shim.rb +9 -0
- data/lib/sass/rails3_shim.rb +16 -0
- data/rails/init.rb +1 -0
- data/test/benchmark.rb +91 -0
- data/test/gemfiles/Gemfile.rails-2.0.x +8 -0
- data/test/gemfiles/Gemfile.rails-2.0.x.lock +38 -0
- data/test/gemfiles/Gemfile.rails-2.1.x +8 -0
- data/test/gemfiles/Gemfile.rails-2.1.x.lock +38 -0
- data/test/gemfiles/Gemfile.rails-2.2.x +8 -0
- data/test/gemfiles/Gemfile.rails-2.2.x.lock +38 -0
- data/test/gemfiles/Gemfile.rails-2.3.x +8 -0
- data/test/gemfiles/Gemfile.rails-2.3.x.lock +40 -0
- data/test/gemfiles/Gemfile.rails-3.0.x +8 -0
- data/test/gemfiles/Gemfile.rails-3.0.x.lock +85 -0
- data/test/gemfiles/Gemfile.rails-3.1.x +8 -0
- data/test/gemfiles/Gemfile.rails-3.1.x.lock +98 -0
- data/test/gemfiles/Gemfile.rails-xss-2.3.x +9 -0
- data/test/gemfiles/Gemfile.rails-xss-2.3.x.lock +42 -0
- data/test/haml-ejs/haml-ejs_test.rb +22 -0
- data/test/haml-ejs/templates/conditional.input +3 -0
- data/test/haml-ejs/templates/conditional.output +3 -0
- data/test/haml-ejs/templates/conditional_and_interpolation.input +2 -0
- data/test/haml-ejs/templates/conditional_and_interpolation.output +3 -0
- data/test/haml-ejs/templates/conditional_else.input +5 -0
- data/test/haml-ejs/templates/conditional_else.output +5 -0
- data/test/haml-ejs/templates/conditional_else_elsif.input +7 -0
- data/test/haml-ejs/templates/conditional_else_elsif.output +7 -0
- data/test/haml-ejs/templates/conditional_elsif.input +5 -0
- data/test/haml-ejs/templates/conditional_elsif.output +5 -0
- data/test/haml-ejs/templates/conditional_unless.input +3 -0
- data/test/haml-ejs/templates/conditional_unless.output +3 -0
- data/test/haml-ejs/templates/conditional_unless_else.input +5 -0
- data/test/haml-ejs/templates/conditional_unless_else.output +5 -0
- data/test/haml-ejs/templates/conditional_unless_elsif_else.input +5 -0
- data/test/haml-ejs/templates/conditional_unless_elsif_else.output +5 -0
- data/test/haml-ejs/templates/interpolation.input +2 -0
- data/test/haml-ejs/templates/interpolation.output +1 -0
- data/test/haml-ejs/templates/iteration.input +2 -0
- data/test/haml-ejs/templates/iteration.output +3 -0
- data/test/haml-ejs/templates/suite.input +26 -0
- data/test/haml-ejs/templates/suite.output +27 -0
- data/test/haml/engine_test.rb +1925 -0
- data/test/haml/erb/_av_partial_1.erb +12 -0
- data/test/haml/erb/_av_partial_2.erb +8 -0
- data/test/haml/erb/action_view.erb +62 -0
- data/test/haml/erb/standard.erb +55 -0
- data/test/haml/helper_test.rb +454 -0
- data/test/haml/html2haml/erb_tests.rb +440 -0
- data/test/haml/html2haml_test.rb +336 -0
- data/test/haml/markaby/standard.mab +52 -0
- data/test/haml/mocks/article.rb +6 -0
- data/test/haml/results/content_for_layout.xhtml +12 -0
- data/test/haml/results/eval_suppressed.xhtml +9 -0
- data/test/haml/results/filters.xhtml +62 -0
- data/test/haml/results/helpers.xhtml +70 -0
- data/test/haml/results/helpful.xhtml +10 -0
- data/test/haml/results/just_stuff.xhtml +70 -0
- data/test/haml/results/list.xhtml +12 -0
- data/test/haml/results/nuke_inner_whitespace.xhtml +40 -0
- data/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
- data/test/haml/results/original_engine.xhtml +20 -0
- data/test/haml/results/partial_layout.xhtml +5 -0
- data/test/haml/results/partials.xhtml +21 -0
- data/test/haml/results/render_layout.xhtml +3 -0
- data/test/haml/results/silent_script.xhtml +74 -0
- data/test/haml/results/standard.xhtml +162 -0
- data/test/haml/results/tag_parsing.xhtml +23 -0
- data/test/haml/results/very_basic.xhtml +5 -0
- data/test/haml/results/whitespace_handling.xhtml +89 -0
- data/test/haml/spec/README.md +97 -0
- data/test/haml/spec/lua_haml_spec.lua +30 -0
- data/test/haml/spec/ruby_haml_test.rb +19 -0
- data/test/haml/spec/tests.json +534 -0
- data/test/haml/spec_test.rb +44 -0
- data/test/haml/template_test.rb +419 -0
- data/test/haml/templates/_av_partial_1.haml +9 -0
- data/test/haml/templates/_av_partial_1_ugly.haml +9 -0
- data/test/haml/templates/_av_partial_2.haml +5 -0
- data/test/haml/templates/_av_partial_2_ugly.haml +5 -0
- data/test/haml/templates/_layout.erb +3 -0
- data/test/haml/templates/_layout_for_partial.haml +3 -0
- data/test/haml/templates/_partial.haml +8 -0
- data/test/haml/templates/_text_area.haml +3 -0
- data/test/haml/templates/action_view.haml +47 -0
- data/test/haml/templates/action_view_ugly.haml +47 -0
- data/test/haml/templates/breakage.haml +8 -0
- data/test/haml/templates/content_for_layout.haml +8 -0
- data/test/haml/templates/eval_suppressed.haml +11 -0
- data/test/haml/templates/filters.haml +66 -0
- data/test/haml/templates/helpers.haml +55 -0
- data/test/haml/templates/helpful.haml +11 -0
- data/test/haml/templates/just_stuff.haml +85 -0
- data/test/haml/templates/list.haml +12 -0
- data/test/haml/templates/nuke_inner_whitespace.haml +32 -0
- data/test/haml/templates/nuke_outer_whitespace.haml +144 -0
- data/test/haml/templates/original_engine.haml +17 -0
- data/test/haml/templates/partial_layout.haml +10 -0
- data/test/haml/templates/partialize.haml +1 -0
- data/test/haml/templates/partials.haml +12 -0
- data/test/haml/templates/render_layout.haml +2 -0
- data/test/haml/templates/silent_script.haml +40 -0
- data/test/haml/templates/standard.haml +43 -0
- data/test/haml/templates/standard_ugly.haml +43 -0
- data/test/haml/templates/tag_parsing.haml +21 -0
- data/test/haml/templates/very_basic.haml +4 -0
- data/test/haml/templates/whitespace_handling.haml +87 -0
- data/test/haml/util_test.rb +300 -0
- data/test/linked_rails.rb +42 -0
- data/test/test_helper.rb +75 -0
- data/vendor/sass/CONTRIBUTING +3 -0
- data/vendor/sass/MIT-LICENSE +20 -0
- data/vendor/sass/README.md +201 -0
- data/vendor/sass/Rakefile +339 -0
- data/vendor/sass/TODO +39 -0
- data/vendor/sass/VERSION +1 -0
- data/vendor/sass/VERSION_NAME +1 -0
- data/vendor/sass/bin/sass +8 -0
- data/vendor/sass/bin/sass-convert +7 -0
- data/vendor/sass/bin/scss +8 -0
- data/vendor/sass/doc-src/FAQ.md +35 -0
- data/vendor/sass/doc-src/INDENTED_SYNTAX.md +210 -0
- data/vendor/sass/doc-src/SASS_CHANGELOG.md +2214 -0
- data/vendor/sass/doc-src/SASS_REFERENCE.md +1957 -0
- data/vendor/sass/doc-src/SCSS_FOR_SASS_USERS.md +155 -0
- data/vendor/sass/ext/extconf.rb +10 -0
- data/vendor/sass/extra/update_watch.rb +13 -0
- data/vendor/sass/init.rb +18 -0
- data/vendor/sass/lib/sass.rb +72 -0
- data/vendor/sass/lib/sass/cache_stores.rb +15 -0
- data/vendor/sass/lib/sass/cache_stores/base.rb +84 -0
- data/vendor/sass/lib/sass/cache_stores/chain.rb +33 -0
- data/vendor/sass/lib/sass/cache_stores/filesystem.rb +58 -0
- data/vendor/sass/lib/sass/cache_stores/memory.rb +47 -0
- data/vendor/sass/lib/sass/cache_stores/null.rb +25 -0
- data/vendor/sass/lib/sass/callbacks.rb +66 -0
- data/vendor/sass/lib/sass/css.rb +294 -0
- data/vendor/sass/lib/sass/engine.rb +862 -0
- data/vendor/sass/lib/sass/environment.rb +155 -0
- data/vendor/sass/lib/sass/error.rb +201 -0
- data/vendor/sass/lib/sass/exec.rb +659 -0
- data/vendor/sass/lib/sass/importers.rb +22 -0
- data/vendor/sass/lib/sass/importers/base.rb +138 -0
- data/vendor/sass/lib/sass/importers/filesystem.rb +144 -0
- data/vendor/sass/lib/sass/less.rb +382 -0
- data/vendor/sass/lib/sass/plugin.rb +136 -0
- data/vendor/sass/lib/sass/plugin/compiler.rb +358 -0
- data/vendor/sass/lib/sass/plugin/configuration.rb +125 -0
- data/vendor/sass/lib/sass/plugin/generic.rb +15 -0
- data/vendor/sass/lib/sass/plugin/merb.rb +48 -0
- data/vendor/sass/lib/sass/plugin/rack.rb +60 -0
- data/vendor/sass/lib/sass/plugin/rails.rb +47 -0
- data/vendor/sass/lib/sass/plugin/staleness_checker.rb +173 -0
- data/vendor/sass/lib/sass/railtie.rb +9 -0
- data/vendor/sass/lib/sass/repl.rb +58 -0
- data/vendor/sass/lib/sass/root.rb +7 -0
- data/vendor/sass/lib/sass/script.rb +40 -0
- data/vendor/sass/lib/sass/script/bool.rb +18 -0
- data/vendor/sass/lib/sass/script/color.rb +480 -0
- data/vendor/sass/lib/sass/script/css_lexer.rb +29 -0
- data/vendor/sass/lib/sass/script/css_parser.rb +31 -0
- data/vendor/sass/lib/sass/script/funcall.rb +162 -0
- data/vendor/sass/lib/sass/script/functions.rb +1343 -0
- data/vendor/sass/lib/sass/script/interpolation.rb +70 -0
- data/vendor/sass/lib/sass/script/lexer.rb +334 -0
- data/vendor/sass/lib/sass/script/list.rb +76 -0
- data/vendor/sass/lib/sass/script/literal.rb +245 -0
- data/vendor/sass/lib/sass/script/node.rb +91 -0
- data/vendor/sass/lib/sass/script/number.rb +429 -0
- data/vendor/sass/lib/sass/script/operation.rb +91 -0
- data/vendor/sass/lib/sass/script/parser.rb +467 -0
- data/vendor/sass/lib/sass/script/string.rb +51 -0
- data/vendor/sass/lib/sass/script/string_interpolation.rb +94 -0
- data/vendor/sass/lib/sass/script/unary_operation.rb +57 -0
- data/vendor/sass/lib/sass/script/variable.rb +54 -0
- data/vendor/sass/lib/sass/scss.rb +17 -0
- data/vendor/sass/lib/sass/scss/css_parser.rb +46 -0
- data/vendor/sass/lib/sass/scss/parser.rb +920 -0
- data/vendor/sass/lib/sass/scss/rx.rb +127 -0
- data/vendor/sass/lib/sass/scss/sass_parser.rb +11 -0
- data/vendor/sass/lib/sass/scss/script_lexer.rb +15 -0
- data/vendor/sass/lib/sass/scss/script_parser.rb +25 -0
- data/vendor/sass/lib/sass/scss/static_parser.rb +40 -0
- data/vendor/sass/lib/sass/selector.rb +361 -0
- data/vendor/sass/lib/sass/selector/abstract_sequence.rb +62 -0
- data/vendor/sass/lib/sass/selector/comma_sequence.rb +81 -0
- data/vendor/sass/lib/sass/selector/sequence.rb +233 -0
- data/vendor/sass/lib/sass/selector/simple.rb +113 -0
- data/vendor/sass/lib/sass/selector/simple_sequence.rb +134 -0
- data/vendor/sass/lib/sass/shared.rb +78 -0
- data/vendor/sass/lib/sass/tree/charset_node.rb +22 -0
- data/vendor/sass/lib/sass/tree/comment_node.rb +77 -0
- data/vendor/sass/lib/sass/tree/debug_node.rb +18 -0
- data/vendor/sass/lib/sass/tree/directive_node.rb +23 -0
- data/vendor/sass/lib/sass/tree/each_node.rb +24 -0
- data/vendor/sass/lib/sass/tree/extend_node.rb +29 -0
- data/vendor/sass/lib/sass/tree/for_node.rb +36 -0
- data/vendor/sass/lib/sass/tree/function_node.rb +27 -0
- data/vendor/sass/lib/sass/tree/if_node.rb +65 -0
- data/vendor/sass/lib/sass/tree/import_node.rb +68 -0
- data/vendor/sass/lib/sass/tree/media_node.rb +32 -0
- data/vendor/sass/lib/sass/tree/mixin_def_node.rb +27 -0
- data/vendor/sass/lib/sass/tree/mixin_node.rb +32 -0
- data/vendor/sass/lib/sass/tree/node.rb +204 -0
- data/vendor/sass/lib/sass/tree/prop_node.rb +155 -0
- data/vendor/sass/lib/sass/tree/return_node.rb +18 -0
- data/vendor/sass/lib/sass/tree/root_node.rb +28 -0
- data/vendor/sass/lib/sass/tree/rule_node.rb +129 -0
- data/vendor/sass/lib/sass/tree/variable_node.rb +30 -0
- data/vendor/sass/lib/sass/tree/visitors/base.rb +75 -0
- data/vendor/sass/lib/sass/tree/visitors/check_nesting.rb +134 -0
- data/vendor/sass/lib/sass/tree/visitors/convert.rb +255 -0
- data/vendor/sass/lib/sass/tree/visitors/cssize.rb +175 -0
- data/vendor/sass/lib/sass/tree/visitors/perform.rb +301 -0
- data/vendor/sass/lib/sass/tree/visitors/to_css.rb +216 -0
- data/vendor/sass/lib/sass/tree/warn_node.rb +18 -0
- data/vendor/sass/lib/sass/tree/while_node.rb +18 -0
- data/vendor/sass/lib/sass/util.rb +669 -0
- data/vendor/sass/lib/sass/util/subset_map.rb +101 -0
- data/vendor/sass/lib/sass/version.rb +112 -0
- data/vendor/sass/rails/init.rb +1 -0
- data/vendor/sass/sass.gemspec +32 -0
- data/vendor/sass/test/sass/cache_test.rb +74 -0
- data/vendor/sass/test/sass/callbacks_test.rb +61 -0
- data/vendor/sass/test/sass/conversion_test.rb +1203 -0
- data/vendor/sass/test/sass/css2sass_test.rb +364 -0
- data/vendor/sass/test/sass/data/hsl-rgb.txt +319 -0
- data/vendor/sass/test/sass/engine_test.rb +2469 -0
- data/vendor/sass/test/sass/extend_test.rb +1348 -0
- data/vendor/sass/test/sass/functions_test.rb +1025 -0
- data/vendor/sass/test/sass/importer_test.rb +82 -0
- data/vendor/sass/test/sass/less_conversion_test.rb +653 -0
- data/vendor/sass/test/sass/mock_importer.rb +49 -0
- data/vendor/sass/test/sass/more_results/more1.css +9 -0
- data/vendor/sass/test/sass/more_results/more1_with_line_comments.css +26 -0
- data/vendor/sass/test/sass/more_results/more_import.css +29 -0
- data/vendor/sass/test/sass/more_templates/_more_partial.sass +2 -0
- data/vendor/sass/test/sass/more_templates/more1.sass +23 -0
- data/vendor/sass/test/sass/more_templates/more_import.sass +11 -0
- data/vendor/sass/test/sass/plugin_test.rb +469 -0
- data/vendor/sass/test/sass/results/alt.css +4 -0
- data/vendor/sass/test/sass/results/basic.css +9 -0
- data/vendor/sass/test/sass/results/compact.css +5 -0
- data/vendor/sass/test/sass/results/complex.css +86 -0
- data/vendor/sass/test/sass/results/compressed.css +1 -0
- data/vendor/sass/test/sass/results/expanded.css +19 -0
- data/vendor/sass/test/sass/results/if.css +3 -0
- data/vendor/sass/test/sass/results/import.css +31 -0
- data/vendor/sass/test/sass/results/import_charset.css +4 -0
- data/vendor/sass/test/sass/results/import_charset_1_8.css +4 -0
- data/vendor/sass/test/sass/results/import_charset_ibm866.css +4 -0
- data/vendor/sass/test/sass/results/line_numbers.css +49 -0
- data/vendor/sass/test/sass/results/mixins.css +95 -0
- data/vendor/sass/test/sass/results/multiline.css +24 -0
- data/vendor/sass/test/sass/results/nested.css +22 -0
- data/vendor/sass/test/sass/results/options.css +1 -0
- data/vendor/sass/test/sass/results/parent_ref.css +13 -0
- data/vendor/sass/test/sass/results/script.css +16 -0
- data/vendor/sass/test/sass/results/scss_import.css +31 -0
- data/vendor/sass/test/sass/results/scss_importee.css +2 -0
- data/vendor/sass/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
- data/vendor/sass/test/sass/results/subdir/subdir.css +3 -0
- data/vendor/sass/test/sass/results/units.css +11 -0
- data/vendor/sass/test/sass/results/warn.css +0 -0
- data/vendor/sass/test/sass/results/warn_imported.css +0 -0
- data/vendor/sass/test/sass/script_conversion_test.rb +283 -0
- data/vendor/sass/test/sass/script_test.rb +496 -0
- data/vendor/sass/test/sass/scss/css_test.rb +916 -0
- data/vendor/sass/test/sass/scss/rx_test.rb +156 -0
- data/vendor/sass/test/sass/scss/scss_test.rb +1249 -0
- data/vendor/sass/test/sass/scss/test_helper.rb +37 -0
- data/vendor/sass/test/sass/templates/_imported_charset_ibm866.sass +4 -0
- data/vendor/sass/test/sass/templates/_imported_charset_utf8.sass +4 -0
- data/vendor/sass/test/sass/templates/_partial.sass +2 -0
- data/vendor/sass/test/sass/templates/alt.sass +16 -0
- data/vendor/sass/test/sass/templates/basic.sass +23 -0
- data/vendor/sass/test/sass/templates/bork1.sass +2 -0
- data/vendor/sass/test/sass/templates/bork2.sass +2 -0
- data/vendor/sass/test/sass/templates/bork3.sass +2 -0
- data/vendor/sass/test/sass/templates/bork4.sass +2 -0
- data/vendor/sass/test/sass/templates/compact.sass +17 -0
- data/vendor/sass/test/sass/templates/complex.sass +305 -0
- data/vendor/sass/test/sass/templates/compressed.sass +15 -0
- data/vendor/sass/test/sass/templates/expanded.sass +17 -0
- data/vendor/sass/test/sass/templates/if.sass +11 -0
- data/vendor/sass/test/sass/templates/import.sass +12 -0
- data/vendor/sass/test/sass/templates/import_charset.sass +7 -0
- data/vendor/sass/test/sass/templates/import_charset_1_8.sass +4 -0
- data/vendor/sass/test/sass/templates/import_charset_ibm866.sass +9 -0
- data/vendor/sass/test/sass/templates/importee.less +2 -0
- data/vendor/sass/test/sass/templates/importee.sass +19 -0
- data/vendor/sass/test/sass/templates/line_numbers.sass +13 -0
- data/vendor/sass/test/sass/templates/mixin_bork.sass +5 -0
- data/vendor/sass/test/sass/templates/mixins.sass +76 -0
- data/vendor/sass/test/sass/templates/multiline.sass +20 -0
- data/vendor/sass/test/sass/templates/nested.sass +25 -0
- data/vendor/sass/test/sass/templates/nested_bork1.sass +2 -0
- data/vendor/sass/test/sass/templates/nested_bork2.sass +2 -0
- data/vendor/sass/test/sass/templates/nested_bork3.sass +2 -0
- data/vendor/sass/test/sass/templates/nested_bork4.sass +2 -0
- data/vendor/sass/test/sass/templates/nested_import.sass +2 -0
- data/vendor/sass/test/sass/templates/nested_mixin_bork.sass +6 -0
- data/vendor/sass/test/sass/templates/options.sass +2 -0
- data/vendor/sass/test/sass/templates/parent_ref.sass +25 -0
- data/vendor/sass/test/sass/templates/script.sass +101 -0
- data/vendor/sass/test/sass/templates/scss_import.scss +11 -0
- data/vendor/sass/test/sass/templates/scss_importee.scss +1 -0
- data/vendor/sass/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
- data/vendor/sass/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
- data/vendor/sass/test/sass/templates/subdir/subdir.sass +6 -0
- data/vendor/sass/test/sass/templates/units.sass +11 -0
- data/vendor/sass/test/sass/templates/warn.sass +3 -0
- data/vendor/sass/test/sass/templates/warn_imported.sass +4 -0
- data/vendor/sass/test/sass/test_helper.rb +8 -0
- data/vendor/sass/test/sass/util/subset_map_test.rb +91 -0
- data/vendor/sass/test/sass/util_test.rb +254 -0
- data/vendor/sass/test/test_helper.rb +69 -0
- data/vendor/sass/yard/callbacks.rb +29 -0
- data/vendor/sass/yard/default/fulldoc/html/css/common.sass +26 -0
- data/vendor/sass/yard/default/layout/html/footer.erb +12 -0
- data/vendor/sass/yard/inherited_hash.rb +41 -0
- metadata +458 -0
data/.yardopts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
--readme README.md
|
|
2
|
+
--markup markdown
|
|
3
|
+
--markup-provider maruku
|
|
4
|
+
--default-return ""
|
|
5
|
+
--title "Haml Documentation"
|
|
6
|
+
--query 'object.type != :classvariable'
|
|
7
|
+
--query 'object.type != :constant || @api && @api.text == "public"'
|
|
8
|
+
--hide-void-return
|
|
9
|
+
--protected
|
|
10
|
+
--no-private
|
|
11
|
+
--no-highlight
|
data/CONTRIBUTING
ADDED
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2006-2009 Hampton Catlin and Nathan Weizenbaum
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Haml+ejs
|
|
2
|
+
|
|
3
|
+
Haml+ejs is a templating engine for client-side HTML templates.
|
|
4
|
+
It's are designed to make it both easier and more pleasant
|
|
5
|
+
to write HTML documents,
|
|
6
|
+
by eliminating redundancy,
|
|
7
|
+
reflecting the underlying structure that the document represents,
|
|
8
|
+
and providing elegant, easily understandable, and powerful syntax.
|
|
9
|
+
|
|
10
|
+
## Installing
|
|
11
|
+
|
|
12
|
+
Add the following to your project's Gemfile
|
|
13
|
+
|
|
14
|
+
gem 'haml_ejs'
|
|
15
|
+
|
|
16
|
+
## Formatting
|
|
17
|
+
|
|
18
|
+
haml+ejs supports all of haml, plus some special EJS-producing directives.
|
|
19
|
+
You can compile Haml+ejs templates to HTML mingled with EJS. For example:
|
|
20
|
+
|
|
21
|
+
%p
|
|
22
|
+
^= my_var
|
|
23
|
+
^if sunny
|
|
24
|
+
Nice, eh?
|
|
25
|
+
|
|
26
|
+
compiles to:
|
|
27
|
+
|
|
28
|
+
<p>
|
|
29
|
+
<%= my_var %>
|
|
30
|
+
<% if (my_var) { %>
|
|
31
|
+
Nice eh?
|
|
32
|
+
<% } %>
|
|
33
|
+
</p>
|
|
34
|
+
|
|
35
|
+
The available EJS directives are:
|
|
36
|
+
|
|
37
|
+
<table>
|
|
38
|
+
<tbody>
|
|
39
|
+
<tr>
|
|
40
|
+
<td><tt>^=</tt></td>
|
|
41
|
+
<td>Interpolate a JavaScript variable</td>
|
|
42
|
+
</tr>
|
|
43
|
+
<tr>
|
|
44
|
+
<td><tt>^if</tt></td>
|
|
45
|
+
<td>Output nested content if JavaScript expression is truthy</td>
|
|
46
|
+
</tr>
|
|
47
|
+
<tr>
|
|
48
|
+
<td><tt>^unless</tt></td>
|
|
49
|
+
<td>Output nested content if JavaScript expression is falsy</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr>
|
|
52
|
+
<td><tt>^elsif</tt></td>
|
|
53
|
+
<td>Output nested content if preceding JavaScript expression is falsy, and the provided expression is truthy</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr>
|
|
56
|
+
<td><tt>^else</tt></td>
|
|
57
|
+
<td>Output nested content if precending JavaScript expression is falsy</td>
|
|
58
|
+
</tr>
|
|
59
|
+
<tr>
|
|
60
|
+
<td><tt>^each</tt></td>
|
|
61
|
+
<td>Iterate over the JavaScript collection, outputing the nested content once for each item in the collection</td>
|
|
62
|
+
</tr>
|
|
63
|
+
</tbody>
|
|
64
|
+
</table>
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
See the official [Haml documentation](http://beta.haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html)
|
|
68
|
+
for how to use Haml itself.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# ----- Utility Functions -----
|
|
2
|
+
|
|
3
|
+
def scope(path)
|
|
4
|
+
File.join(File.dirname(__FILE__), path)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# ----- Benchmarking -----
|
|
8
|
+
|
|
9
|
+
desc <<END
|
|
10
|
+
Benchmark haml against ERb.
|
|
11
|
+
TIMES=n sets the number of runs. Defaults to 1000.
|
|
12
|
+
END
|
|
13
|
+
task :benchmark do
|
|
14
|
+
sh "ruby test/benchmark.rb #{ENV['TIMES']}"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# ----- Default: Testing ------
|
|
18
|
+
|
|
19
|
+
if ENV["RUN_CODE_RUN"] == "true"
|
|
20
|
+
task :default => :"test:rails_compatibility"
|
|
21
|
+
else
|
|
22
|
+
task :default => :test
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
require 'rake/testtask'
|
|
26
|
+
|
|
27
|
+
Rake::TestTask.new do |t|
|
|
28
|
+
t.libs << 'lib'
|
|
29
|
+
test_files = FileList[scope('test/**/*_test.rb')]
|
|
30
|
+
test_files.exclude(scope('test/rails/*'))
|
|
31
|
+
test_files.exclude(scope('test/plugins/*'))
|
|
32
|
+
test_files.exclude(scope('test/haml/spec/*'))
|
|
33
|
+
t.test_files = test_files
|
|
34
|
+
t.verbose = true
|
|
35
|
+
end
|
|
36
|
+
Rake::Task[:test].send(:add_comment, <<END)
|
|
37
|
+
To run with an alternate version of Rails, make test/rails a symlink to that version.
|
|
38
|
+
END
|
|
39
|
+
|
|
40
|
+
# ----- Packaging -----
|
|
41
|
+
|
|
42
|
+
# Don't use Rake::GemPackageTast because we want prerequisites to run
|
|
43
|
+
# before we load the gemspec.
|
|
44
|
+
desc "Build all the packages."
|
|
45
|
+
task :package => [:revision_file, :submodules, :permissions] do
|
|
46
|
+
version = get_version
|
|
47
|
+
File.open(scope('VERSION'), 'w') {|f| f.puts(version)}
|
|
48
|
+
load scope('haml.gemspec')
|
|
49
|
+
Gem::Builder.new(HAML_GEMSPEC).build
|
|
50
|
+
sh %{git checkout VERSION}
|
|
51
|
+
|
|
52
|
+
pkg = "#{HAML_GEMSPEC.name}-#{HAML_GEMSPEC.version}"
|
|
53
|
+
mkdir_p "pkg"
|
|
54
|
+
verbose(true) {mv "#{pkg}.gem", "pkg/#{pkg}.gem"}
|
|
55
|
+
|
|
56
|
+
sh %{rm -f pkg/#{pkg}.tar.gz}
|
|
57
|
+
verbose(false) {HAML_GEMSPEC.files.each {|f| sh %{tar rf pkg/#{pkg}.tar #{f}}}}
|
|
58
|
+
sh %{gzip pkg/#{pkg}.tar}
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
task :permissions do
|
|
62
|
+
sh %{chmod -R a+rx bin}
|
|
63
|
+
sh %{chmod -R a+r .}
|
|
64
|
+
require 'shellwords'
|
|
65
|
+
Dir.glob('test/**/*_test.rb') do |file|
|
|
66
|
+
next if file =~ %r{^test/haml/spec/}
|
|
67
|
+
sh %{chmod a+rx #{file}}
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
task :revision_file do
|
|
72
|
+
require 'lib/haml'
|
|
73
|
+
|
|
74
|
+
release = Rake.application.top_level_tasks.include?('release') || File.exist?(scope('EDGE_GEM_VERSION'))
|
|
75
|
+
if Haml.version[:rev] && !release
|
|
76
|
+
File.open(scope('REVISION'), 'w') { |f| f.puts Haml.version[:rev] }
|
|
77
|
+
elsif release
|
|
78
|
+
File.open(scope('REVISION'), 'w') { |f| f.puts "(release)" }
|
|
79
|
+
else
|
|
80
|
+
File.open(scope('REVISION'), 'w') { |f| f.puts "(unknown)" }
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# We also need to get rid of this file after packaging.
|
|
85
|
+
at_exit { File.delete(scope('REVISION')) rescue nil }
|
|
86
|
+
|
|
87
|
+
desc "Install Haml as a gem. Use SUDO=1 to install with sudo."
|
|
88
|
+
task :install => [:package] do
|
|
89
|
+
gem = RUBY_PLATFORM =~ /java/ ? 'jgem' : 'gem'
|
|
90
|
+
sh %{#{'sudo ' if ENV["SUDO"]}#{gem} install --no-ri pkg/haml-#{get_version}}
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
desc "Release a new Haml package to Rubyforge."
|
|
94
|
+
task :release => [:check_release, :package] do
|
|
95
|
+
name = File.read(scope("VERSION_NAME")).strip
|
|
96
|
+
version = File.read(scope("VERSION")).strip
|
|
97
|
+
sh %{rubyforge add_release haml haml "#{name} (v#{version})" pkg/haml-#{version}.gem}
|
|
98
|
+
sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.tar.gz}
|
|
99
|
+
sh %{gem push pkg/haml-#{version}.gem}
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
# Ensures that the VERSION file has been updated for a new release.
|
|
104
|
+
task :check_release do
|
|
105
|
+
version = File.read(scope("VERSION")).strip
|
|
106
|
+
raise "There have been changes since current version (#{version})" if changed_since?(version)
|
|
107
|
+
raise "VERSION_NAME must not be 'Bleeding Edge'" if File.read(scope("VERSION_NAME")) == "Bleeding Edge"
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Reads a password from the command line.
|
|
111
|
+
#
|
|
112
|
+
# @param name [String] The prompt to use to read the password
|
|
113
|
+
def read_password(prompt)
|
|
114
|
+
require 'readline'
|
|
115
|
+
system "stty -echo"
|
|
116
|
+
Readline.readline("#{prompt}: ").strip
|
|
117
|
+
ensure
|
|
118
|
+
system "stty echo"
|
|
119
|
+
puts
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# Returns whether or not the repository, or specific files,
|
|
123
|
+
# has/have changed since a given revision.
|
|
124
|
+
#
|
|
125
|
+
# @param rev [String] The revision to check against
|
|
126
|
+
# @param files [Array<String>] The files to check.
|
|
127
|
+
# If this is empty, checks the entire repository
|
|
128
|
+
def changed_since?(rev, *files)
|
|
129
|
+
IO.popen("git diff --exit-code #{rev} #{files.join(' ')}") {}
|
|
130
|
+
return !$?.success?
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
task :submodules do
|
|
134
|
+
if File.exist?(File.dirname(__FILE__) + "/.git")
|
|
135
|
+
sh %{git submodule sync}
|
|
136
|
+
sh %{git submodule update --init --recursive}
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
task :release_edge do
|
|
141
|
+
ensure_git_cleanup do
|
|
142
|
+
puts "#{'=' * 50} Running rake release_edge"
|
|
143
|
+
|
|
144
|
+
sh %{git checkout master}
|
|
145
|
+
sh %{git reset --hard origin/master}
|
|
146
|
+
sh %{rake package}
|
|
147
|
+
version = get_version
|
|
148
|
+
sh %{rubyforge add_release haml haml "Bleeding Edge (v#{version})" pkg/haml-#{version}.gem}
|
|
149
|
+
sh %{gem push pkg/haml-#{version}.gem}
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# Get the version string. If this is being installed from Git,
|
|
154
|
+
# this includes the proper prerelease version.
|
|
155
|
+
def get_version
|
|
156
|
+
written_version = File.read(scope('VERSION').strip)
|
|
157
|
+
return written_version unless File.exist?(scope('.git'))
|
|
158
|
+
|
|
159
|
+
# Get the current master branch version
|
|
160
|
+
version = written_version.split('.')
|
|
161
|
+
version.map! {|n| n =~ /^[0-9]+$/ ? n.to_i : n}
|
|
162
|
+
return written_version unless version.size == 5 && version[3] == "alpha" # prerelease
|
|
163
|
+
|
|
164
|
+
return written_version if (commit_count = `git log --pretty=oneline --first-parent stable.. | wc -l`).empty?
|
|
165
|
+
version[4] = commit_count.strip
|
|
166
|
+
version.join('.')
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
task :watch_for_update do
|
|
170
|
+
sh %{ruby extra/update_watch.rb}
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
# ----- Documentation -----
|
|
174
|
+
|
|
175
|
+
task :rdoc do
|
|
176
|
+
puts '=' * 100, <<END, '=' * 100
|
|
177
|
+
Haml uses the YARD documentation system (http://github.com/lsegal/yard).
|
|
178
|
+
Install the yard gem and then run "rake doc".
|
|
179
|
+
END
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
begin
|
|
183
|
+
require 'yard'
|
|
184
|
+
|
|
185
|
+
namespace :doc do
|
|
186
|
+
task :sass do
|
|
187
|
+
require 'sass'
|
|
188
|
+
Dir[scope("yard/default/**/*.sass")].each do |sass|
|
|
189
|
+
File.open(sass.gsub(/sass$/, 'css'), 'w') do |f|
|
|
190
|
+
f.write(Sass::Engine.new(File.read(sass)).render)
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
desc "List all undocumented methods and classes."
|
|
196
|
+
task :undocumented do
|
|
197
|
+
opts = ENV["YARD_OPTS"] || ""
|
|
198
|
+
ENV["YARD_OPTS"] = opts.dup + <<OPTS
|
|
199
|
+
--list --query "
|
|
200
|
+
object.docstring.blank? &&
|
|
201
|
+
!(object.type == :method && object.is_alias?)"
|
|
202
|
+
OPTS
|
|
203
|
+
Rake::Task['yard'].execute
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
YARD::Rake::YardocTask.new do |t|
|
|
208
|
+
t.files = FileList.new(scope('lib/**/*.rb')) do |list|
|
|
209
|
+
list.exclude('lib/haml/template/patch.rb')
|
|
210
|
+
list.exclude('lib/haml/template/plugin.rb')
|
|
211
|
+
list.exclude('lib/haml/railtie.rb')
|
|
212
|
+
list.exclude('lib/haml/helpers/action_view_mods.rb')
|
|
213
|
+
list.exclude('lib/haml/helpers/xss_mods.rb')
|
|
214
|
+
end.to_a
|
|
215
|
+
t.options << '--incremental' if Rake.application.top_level_tasks.include?('redoc')
|
|
216
|
+
t.options += FileList.new(scope('yard/*.rb')).to_a.map {|f| ['-e', f]}.flatten
|
|
217
|
+
files = FileList.new(scope('doc-src/*')).to_a.sort_by {|s| s.size} + %w[MIT-LICENSE VERSION]
|
|
218
|
+
t.options << '--files' << files.join(',')
|
|
219
|
+
t.options << '--template-path' << scope('yard')
|
|
220
|
+
t.options << '--title' << ENV["YARD_TITLE"] if ENV["YARD_TITLE"]
|
|
221
|
+
|
|
222
|
+
t.before = lambda do
|
|
223
|
+
if ENV["YARD_OPTS"]
|
|
224
|
+
require 'shellwords'
|
|
225
|
+
t.options.concat(Shellwords.shellwords(ENV["YARD_OPTS"]))
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
Rake::Task['yard'].prerequisites.insert(0, 'doc:sass')
|
|
230
|
+
Rake::Task['yard'].instance_variable_set('@comment', nil)
|
|
231
|
+
|
|
232
|
+
desc "Generate Documentation"
|
|
233
|
+
task :doc => :yard
|
|
234
|
+
task :redoc => :yard
|
|
235
|
+
rescue LoadError
|
|
236
|
+
desc "Generate Documentation"
|
|
237
|
+
task :doc => :rdoc
|
|
238
|
+
task :yard => :rdoc
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
task :pages do
|
|
242
|
+
puts "#{'=' * 50} Running rake pages"
|
|
243
|
+
ensure_git_cleanup do
|
|
244
|
+
sh %{git checkout haml-pages}
|
|
245
|
+
sh %{git reset --hard origin/haml-pages}
|
|
246
|
+
|
|
247
|
+
Dir.chdir("/var/www/haml-pages") do
|
|
248
|
+
sh %{git fetch origin}
|
|
249
|
+
|
|
250
|
+
sh %{git checkout stable}
|
|
251
|
+
sh %{git reset --hard origin/stable}
|
|
252
|
+
|
|
253
|
+
sh %{git checkout haml-pages}
|
|
254
|
+
sh %{git reset --hard origin/haml-pages}
|
|
255
|
+
sh %{rake build --trace}
|
|
256
|
+
sh %{mkdir -p tmp}
|
|
257
|
+
sh %{touch tmp/restart.txt}
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
# ----- Coverage -----
|
|
263
|
+
|
|
264
|
+
begin
|
|
265
|
+
require 'rcov/rcovtask'
|
|
266
|
+
|
|
267
|
+
Rcov::RcovTask.new do |t|
|
|
268
|
+
t.test_files = FileList[scope('test/**/*_test.rb')]
|
|
269
|
+
t.rcov_opts << '-x' << '"^\/"'
|
|
270
|
+
if ENV['NON_NATIVE']
|
|
271
|
+
t.rcov_opts << "--no-rcovrt"
|
|
272
|
+
end
|
|
273
|
+
t.verbose = true
|
|
274
|
+
end
|
|
275
|
+
rescue LoadError; end
|
|
276
|
+
|
|
277
|
+
# ----- Profiling -----
|
|
278
|
+
|
|
279
|
+
begin
|
|
280
|
+
require 'ruby-prof'
|
|
281
|
+
|
|
282
|
+
desc <<END
|
|
283
|
+
Run a profile of haml.
|
|
284
|
+
TIMES=n sets the number of runs. Defaults to 1000.
|
|
285
|
+
FILE=str sets the file to profile. Defaults to 'standard'
|
|
286
|
+
OUTPUT=str sets the ruby-prof output format.
|
|
287
|
+
Can be Flat, CallInfo, or Graph. Defaults to Flat. Defaults to Flat.
|
|
288
|
+
END
|
|
289
|
+
task :profile do
|
|
290
|
+
times = (ENV['TIMES'] || '1000').to_i
|
|
291
|
+
file = ENV['FILE']
|
|
292
|
+
|
|
293
|
+
require 'lib/haml'
|
|
294
|
+
|
|
295
|
+
file = File.read(scope("test/haml/templates/#{file || 'standard'}.haml"))
|
|
296
|
+
obj = Object.new
|
|
297
|
+
Haml::Engine.new(file).def_method(obj, :render)
|
|
298
|
+
result = RubyProf.profile { times.times { obj.render } }
|
|
299
|
+
|
|
300
|
+
RubyProf.const_get("#{(ENV['OUTPUT'] || 'Flat').capitalize}Printer").new(result).print
|
|
301
|
+
end
|
|
302
|
+
rescue LoadError; end
|
|
303
|
+
|
|
304
|
+
# ----- Testing Multiple Rails Versions -----
|
|
305
|
+
|
|
306
|
+
rails_versions = [
|
|
307
|
+
"v3.1.0",
|
|
308
|
+
"v3.0.10",
|
|
309
|
+
"v2.3.14",
|
|
310
|
+
"v2.2.3",
|
|
311
|
+
"v2.1.2",
|
|
312
|
+
]
|
|
313
|
+
rails_versions << "v2.0.5" if RUBY_VERSION =~ /^1\.8/
|
|
314
|
+
|
|
315
|
+
def test_rails_version(version)
|
|
316
|
+
Dir.chdir "test/rails" do
|
|
317
|
+
sh %{git checkout #{version}}
|
|
318
|
+
end
|
|
319
|
+
puts "Testing Rails #{version}"
|
|
320
|
+
Rake::Task['test'].reenable
|
|
321
|
+
Rake::Task['test'].execute
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
def gemfiles
|
|
325
|
+
@gemfiles ||=
|
|
326
|
+
begin
|
|
327
|
+
raise 'Must install bundler to run Rails compatibility tests' if `which bundle`.empty?
|
|
328
|
+
Dir[File.dirname(__FILE__) + '/test/gemfiles/Gemfile.*'].
|
|
329
|
+
reject {|f| f =~ /\.lock$/}.
|
|
330
|
+
reject {|f| RUBY_VERSION !~ /^1\.8/ && f =~ /Gemfile\.rails-2\.[0-2]/}
|
|
331
|
+
end
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
def with_each_gemfile
|
|
335
|
+
old_env = ENV['BUNDLE_GEMFILE']
|
|
336
|
+
gemfiles.each do |gemfile|
|
|
337
|
+
puts "Using gemfile: #{gemfile}"
|
|
338
|
+
ENV['BUNDLE_GEMFILE'] = gemfile
|
|
339
|
+
yield
|
|
340
|
+
end
|
|
341
|
+
ensure
|
|
342
|
+
ENV['BUNDLE_GEMFILE'] = old_env
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
namespace :test do
|
|
346
|
+
namespace :bundles do
|
|
347
|
+
desc "Install all dependencies necessary to test Haml."
|
|
348
|
+
task :install do
|
|
349
|
+
with_each_gemfile {sh "bundle install"}
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
desc "Update all dependencies for testing Haml."
|
|
353
|
+
task :update do
|
|
354
|
+
with_each_gemfile {sh "bundle update"}
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
desc "Test all supported versions of rails. This takes a while."
|
|
359
|
+
task :rails_compatibility => 'test:bundles:install' do
|
|
360
|
+
`rm -rf test/rails`
|
|
361
|
+
`rm -rf test/plugins`
|
|
362
|
+
with_each_gemfile {sh "bundle exec rake test"}
|
|
363
|
+
end
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
# ----- Handling Updates -----
|
|
367
|
+
|
|
368
|
+
def email_on_error
|
|
369
|
+
yield
|
|
370
|
+
rescue Exception => e
|
|
371
|
+
IO.popen("sendmail nex342@gmail.com", "w") do |sm|
|
|
372
|
+
sm << "From: nex3@nex-3.com\n" <<
|
|
373
|
+
"To: nex342@gmail.com\n" <<
|
|
374
|
+
"Subject: Exception when running rake #{Rake.application.top_level_tasks.join(', ')}\n" <<
|
|
375
|
+
e.message << "\n\n" <<
|
|
376
|
+
e.backtrace.join("\n")
|
|
377
|
+
end
|
|
378
|
+
ensure
|
|
379
|
+
raise e if e
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
def ensure_git_cleanup
|
|
383
|
+
email_on_error {yield}
|
|
384
|
+
ensure
|
|
385
|
+
sh %{git reset --hard HEAD}
|
|
386
|
+
sh %{git clean -xdf}
|
|
387
|
+
sh %{git checkout master}
|
|
388
|
+
end
|
|
389
|
+
|
|
390
|
+
task :handle_update do
|
|
391
|
+
email_on_error do
|
|
392
|
+
unless ENV["REF"] =~ %r{^refs/heads/(master|stable|haml-pages)$}
|
|
393
|
+
puts "#{'=' * 20} Ignoring rake handle_update REF=#{ENV["REF"].inspect}"
|
|
394
|
+
next
|
|
395
|
+
end
|
|
396
|
+
branch = $1
|
|
397
|
+
|
|
398
|
+
puts
|
|
399
|
+
puts
|
|
400
|
+
puts '=' * 150
|
|
401
|
+
puts "Running rake handle_update REF=#{ENV["REF"].inspect}"
|
|
402
|
+
|
|
403
|
+
sh %{git fetch origin}
|
|
404
|
+
sh %{git checkout stable}
|
|
405
|
+
sh %{git reset --hard origin/stable}
|
|
406
|
+
sh %{git checkout master}
|
|
407
|
+
sh %{git reset --hard origin/master}
|
|
408
|
+
|
|
409
|
+
case branch
|
|
410
|
+
when "master"
|
|
411
|
+
sh %{rake release_edge --trace}
|
|
412
|
+
when "stable", "haml-pages"
|
|
413
|
+
sh %{rake pages --trace}
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
puts 'Done running handle_update'
|
|
417
|
+
puts '=' * 150
|
|
418
|
+
end
|
|
419
|
+
end
|