haml 3.2.0.alpha.10 → 3.2.0.alpha.13
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of haml might be problematic. Click here for more details.
- data/.yardopts +19 -7
- data/CHANGELOG.md +1224 -0
- data/FAQ.md +157 -0
- data/README.md +99 -62
- data/REFERENCE.md +1404 -0
- data/Rakefile +52 -341
- data/init.rb +1 -18
- data/lib/haml.rb +6 -30
- data/lib/haml/buffer.rb +37 -16
- data/lib/haml/compiler.rb +52 -13
- data/lib/haml/engine.rb +61 -44
- data/lib/haml/exec.rb +21 -4
- data/lib/haml/filters.rb +136 -166
- data/lib/haml/helpers.rb +37 -10
- data/lib/haml/helpers/action_view_extensions.rb +2 -1
- data/lib/haml/helpers/action_view_mods.rb +67 -181
- data/lib/haml/helpers/rails_323_textarea_fix.rb +39 -0
- data/lib/haml/helpers/xss_mods.rb +9 -11
- data/lib/haml/html.rb +22 -9
- data/lib/haml/html/erb.rb +1 -1
- data/lib/haml/parser.rb +22 -15
- data/lib/haml/railtie.rb +2 -13
- data/lib/haml/template.rb +18 -85
- data/lib/haml/template/options.rb +1 -1
- data/lib/haml/template/plugin.rb +15 -101
- data/lib/haml/util.rb +120 -603
- data/lib/haml/version.rb +1 -107
- data/test/{haml/engine_test.rb → engine_test.rb} +137 -143
- data/test/{haml/erb → erb}/_av_partial_1.erb +1 -1
- data/test/{haml/erb → erb}/_av_partial_2.erb +1 -1
- data/test/{haml/erb → erb}/action_view.erb +1 -1
- data/test/{haml/erb → erb}/standard.erb +0 -0
- data/test/filters_test.rb +141 -0
- data/test/gemfiles/Gemfile.rails-3.0.x +4 -6
- data/test/gemfiles/Gemfile.rails-3.1.x +5 -6
- data/test/gemfiles/Gemfile.rails-3.2.x +6 -0
- data/test/haml-spec/LICENSE +14 -0
- data/test/{haml/spec → haml-spec}/README.md +26 -17
- data/test/haml-spec/lua_haml_spec.lua +38 -0
- data/test/haml-spec/perl_haml_test.pl +81 -0
- data/test/haml-spec/ruby_haml_test.rb +23 -0
- data/test/{haml/spec → haml-spec}/tests.json +132 -54
- data/test/{haml/helper_test.rb → helper_test.rb} +50 -36
- data/test/{haml/html2haml → html2haml}/erb_tests.rb +0 -0
- data/test/{haml/html2haml_test.rb → html2haml_test.rb} +11 -5
- data/test/{haml/markaby → markaby}/standard.mab +0 -0
- data/test/{haml/mocks → mocks}/article.rb +0 -0
- data/test/{haml/results → results}/content_for_layout.xhtml +0 -0
- data/test/{haml/results → results}/eval_suppressed.xhtml +0 -0
- data/test/{haml/results → results}/helpers.xhtml +0 -0
- data/test/{haml/results → results}/helpful.xhtml +0 -0
- data/test/{haml/results → results}/just_stuff.xhtml +0 -0
- data/test/{haml/results → results}/list.xhtml +0 -0
- data/test/{haml/results → results}/nuke_inner_whitespace.xhtml +0 -0
- data/test/{haml/results → results}/nuke_outer_whitespace.xhtml +0 -0
- data/test/{haml/results → results}/original_engine.xhtml +0 -0
- data/test/{haml/results → results}/partial_layout.xhtml +0 -0
- data/test/{haml/results → results}/partials.xhtml +0 -0
- data/test/{haml/results → results}/render_layout.xhtml +0 -0
- data/test/{haml/results → results}/silent_script.xhtml +1 -1
- data/test/{haml/results → results}/standard.xhtml +0 -0
- data/test/{haml/results → results}/tag_parsing.xhtml +0 -0
- data/test/{haml/results → results}/very_basic.xhtml +0 -0
- data/test/{haml/results → results}/whitespace_handling.xhtml +46 -50
- data/test/{haml/template_test.rb → template_test.rb} +20 -81
- data/test/{haml/templates → templates}/_av_partial_1.haml +1 -1
- data/test/{haml/templates → templates}/_av_partial_1_ugly.haml +1 -1
- data/test/{haml/templates → templates}/_av_partial_2.haml +1 -1
- data/test/{haml/templates → templates}/_av_partial_2_ugly.haml +1 -1
- data/test/{haml/templates → templates}/_layout.erb +0 -0
- data/test/{haml/templates → templates}/_layout_for_partial.haml +0 -0
- data/test/{haml/templates → templates}/_partial.haml +0 -0
- data/test/{haml/templates → templates}/_text_area.haml +0 -0
- data/test/{haml/templates → templates}/action_view.haml +1 -1
- data/test/{haml/templates → templates}/action_view_ugly.haml +1 -1
- data/test/{haml/templates → templates}/breakage.haml +0 -0
- data/test/{haml/templates → templates}/content_for_layout.haml +0 -0
- data/test/{haml/templates → templates}/eval_suppressed.haml +0 -0
- data/test/{haml/templates → templates}/helpers.haml +0 -0
- data/test/{haml/templates → templates}/helpful.haml +0 -0
- data/test/{haml/templates → templates}/just_stuff.haml +0 -0
- data/test/{haml/templates → templates}/list.haml +0 -0
- data/test/{haml/templates → templates}/nuke_inner_whitespace.haml +0 -0
- data/test/{haml/templates → templates}/nuke_outer_whitespace.haml +0 -0
- data/test/{haml/templates → templates}/original_engine.haml +0 -0
- data/test/templates/partial_layout.haml +3 -0
- data/test/{haml/templates → templates}/partialize.haml +0 -0
- data/test/{haml/templates → templates}/partials.haml +0 -0
- data/test/{haml/templates → templates}/render_layout.haml +0 -0
- data/test/{haml/templates → templates}/silent_script.haml +2 -2
- data/test/{haml/templates → templates}/standard.haml +0 -0
- data/test/{haml/templates → templates}/standard_ugly.haml +0 -0
- data/test/{haml/templates → templates}/tag_parsing.haml +0 -0
- data/test/{haml/templates → templates}/very_basic.haml +0 -0
- data/test/{haml/templates → templates}/whitespace_handling.haml +0 -0
- data/test/test_helper.rb +42 -34
- data/test/util_test.rb +80 -0
- metadata +259 -427
- data/CONTRIBUTING +0 -3
- data/REVISION +0 -1
- data/VERSION +0 -1
- data/VERSION_NAME +0 -1
- data/extra/update_watch.rb +0 -13
- data/lib/haml/root.rb +0 -7
- data/lib/haml/shared.rb +0 -78
- data/lib/haml/template/patch.rb +0 -58
- data/lib/sass.rb +0 -8
- data/lib/sass/plugin.rb +0 -10
- data/lib/sass/rails2_shim.rb +0 -9
- data/lib/sass/rails3_shim.rb +0 -16
- data/test/benchmark.rb +0 -91
- data/test/gemfiles/Gemfile.rails-2.0.x +0 -8
- data/test/gemfiles/Gemfile.rails-2.0.x.lock +0 -38
- data/test/gemfiles/Gemfile.rails-2.1.x +0 -8
- data/test/gemfiles/Gemfile.rails-2.1.x.lock +0 -38
- data/test/gemfiles/Gemfile.rails-2.2.x +0 -8
- data/test/gemfiles/Gemfile.rails-2.2.x.lock +0 -38
- data/test/gemfiles/Gemfile.rails-2.3.x +0 -8
- data/test/gemfiles/Gemfile.rails-2.3.x.lock +0 -40
- data/test/gemfiles/Gemfile.rails-3.0.x.lock +0 -85
- data/test/gemfiles/Gemfile.rails-3.1.x.lock +0 -98
- data/test/gemfiles/Gemfile.rails-xss-2.3.x +0 -9
- data/test/gemfiles/Gemfile.rails-xss-2.3.x.lock +0 -42
- data/test/haml/results/filters.xhtml +0 -62
- data/test/haml/spec/lua_haml_spec.lua +0 -30
- data/test/haml/spec/ruby_haml_test.rb +0 -19
- data/test/haml/spec_test.rb +0 -44
- data/test/haml/templates/filters.haml +0 -66
- data/test/haml/templates/partial_layout.haml +0 -10
- data/test/haml/util_test.rb +0 -300
- data/test/linked_rails.rb +0 -42
- data/vendor/sass/CONTRIBUTING +0 -3
- data/vendor/sass/MIT-LICENSE +0 -20
- data/vendor/sass/README.md +0 -201
- data/vendor/sass/Rakefile +0 -339
- data/vendor/sass/TODO +0 -39
- data/vendor/sass/VERSION +0 -1
- data/vendor/sass/VERSION_NAME +0 -1
- data/vendor/sass/bin/sass +0 -8
- data/vendor/sass/bin/sass-convert +0 -7
- data/vendor/sass/bin/scss +0 -8
- data/vendor/sass/doc-src/FAQ.md +0 -35
- data/vendor/sass/doc-src/INDENTED_SYNTAX.md +0 -210
- data/vendor/sass/doc-src/SASS_CHANGELOG.md +0 -2327
- data/vendor/sass/doc-src/SASS_REFERENCE.md +0 -1965
- data/vendor/sass/doc-src/SCSS_FOR_SASS_USERS.md +0 -155
- data/vendor/sass/ext/extconf.rb +0 -10
- data/vendor/sass/extra/update_watch.rb +0 -13
- data/vendor/sass/init.rb +0 -18
- data/vendor/sass/lib/sass.rb +0 -73
- data/vendor/sass/lib/sass/cache_stores.rb +0 -15
- data/vendor/sass/lib/sass/cache_stores/base.rb +0 -86
- data/vendor/sass/lib/sass/cache_stores/chain.rb +0 -33
- data/vendor/sass/lib/sass/cache_stores/filesystem.rb +0 -60
- data/vendor/sass/lib/sass/cache_stores/memory.rb +0 -47
- data/vendor/sass/lib/sass/cache_stores/null.rb +0 -25
- data/vendor/sass/lib/sass/callbacks.rb +0 -66
- data/vendor/sass/lib/sass/css.rb +0 -295
- data/vendor/sass/lib/sass/engine.rb +0 -878
- data/vendor/sass/lib/sass/environment.rb +0 -166
- data/vendor/sass/lib/sass/error.rb +0 -201
- data/vendor/sass/lib/sass/exec.rb +0 -672
- data/vendor/sass/lib/sass/importers.rb +0 -22
- data/vendor/sass/lib/sass/importers/base.rb +0 -139
- data/vendor/sass/lib/sass/importers/filesystem.rb +0 -149
- data/vendor/sass/lib/sass/less.rb +0 -382
- data/vendor/sass/lib/sass/logger.rb +0 -15
- data/vendor/sass/lib/sass/logger/base.rb +0 -32
- data/vendor/sass/lib/sass/logger/log_level.rb +0 -49
- data/vendor/sass/lib/sass/plugin.rb +0 -132
- data/vendor/sass/lib/sass/plugin/compiler.rb +0 -383
- data/vendor/sass/lib/sass/plugin/configuration.rb +0 -123
- data/vendor/sass/lib/sass/plugin/generic.rb +0 -15
- data/vendor/sass/lib/sass/plugin/merb.rb +0 -48
- data/vendor/sass/lib/sass/plugin/rack.rb +0 -60
- data/vendor/sass/lib/sass/plugin/rails.rb +0 -47
- data/vendor/sass/lib/sass/plugin/staleness_checker.rb +0 -173
- data/vendor/sass/lib/sass/railtie.rb +0 -9
- data/vendor/sass/lib/sass/repl.rb +0 -58
- data/vendor/sass/lib/sass/root.rb +0 -7
- data/vendor/sass/lib/sass/script.rb +0 -40
- data/vendor/sass/lib/sass/script/bool.rb +0 -18
- data/vendor/sass/lib/sass/script/color.rb +0 -480
- data/vendor/sass/lib/sass/script/css_lexer.rb +0 -29
- data/vendor/sass/lib/sass/script/css_parser.rb +0 -31
- data/vendor/sass/lib/sass/script/funcall.rb +0 -175
- data/vendor/sass/lib/sass/script/functions.rb +0 -1386
- data/vendor/sass/lib/sass/script/interpolation.rb +0 -79
- data/vendor/sass/lib/sass/script/lexer.rb +0 -339
- data/vendor/sass/lib/sass/script/list.rb +0 -83
- data/vendor/sass/lib/sass/script/literal.rb +0 -250
- data/vendor/sass/lib/sass/script/node.rb +0 -99
- data/vendor/sass/lib/sass/script/number.rb +0 -452
- data/vendor/sass/lib/sass/script/operation.rb +0 -99
- data/vendor/sass/lib/sass/script/parser.rb +0 -474
- data/vendor/sass/lib/sass/script/string.rb +0 -51
- data/vendor/sass/lib/sass/script/string_interpolation.rb +0 -103
- data/vendor/sass/lib/sass/script/unary_operation.rb +0 -64
- data/vendor/sass/lib/sass/script/variable.rb +0 -59
- data/vendor/sass/lib/sass/scss.rb +0 -17
- data/vendor/sass/lib/sass/scss/css_parser.rb +0 -46
- data/vendor/sass/lib/sass/scss/parser.rb +0 -960
- data/vendor/sass/lib/sass/scss/rx.rb +0 -128
- data/vendor/sass/lib/sass/scss/sass_parser.rb +0 -11
- data/vendor/sass/lib/sass/scss/script_lexer.rb +0 -15
- data/vendor/sass/lib/sass/scss/script_parser.rb +0 -25
- data/vendor/sass/lib/sass/scss/static_parser.rb +0 -40
- data/vendor/sass/lib/sass/selector.rb +0 -361
- data/vendor/sass/lib/sass/selector/abstract_sequence.rb +0 -62
- data/vendor/sass/lib/sass/selector/comma_sequence.rb +0 -81
- data/vendor/sass/lib/sass/selector/sequence.rb +0 -233
- data/vendor/sass/lib/sass/selector/simple.rb +0 -113
- data/vendor/sass/lib/sass/selector/simple_sequence.rb +0 -134
- data/vendor/sass/lib/sass/shared.rb +0 -78
- data/vendor/sass/lib/sass/tree/charset_node.rb +0 -22
- data/vendor/sass/lib/sass/tree/comment_node.rb +0 -90
- data/vendor/sass/lib/sass/tree/debug_node.rb +0 -18
- data/vendor/sass/lib/sass/tree/directive_node.rb +0 -23
- data/vendor/sass/lib/sass/tree/each_node.rb +0 -24
- data/vendor/sass/lib/sass/tree/extend_node.rb +0 -29
- data/vendor/sass/lib/sass/tree/for_node.rb +0 -36
- data/vendor/sass/lib/sass/tree/function_node.rb +0 -27
- data/vendor/sass/lib/sass/tree/if_node.rb +0 -52
- data/vendor/sass/lib/sass/tree/import_node.rb +0 -68
- data/vendor/sass/lib/sass/tree/media_node.rb +0 -32
- data/vendor/sass/lib/sass/tree/mixin_def_node.rb +0 -27
- data/vendor/sass/lib/sass/tree/mixin_node.rb +0 -32
- data/vendor/sass/lib/sass/tree/node.rb +0 -201
- data/vendor/sass/lib/sass/tree/prop_node.rb +0 -148
- data/vendor/sass/lib/sass/tree/return_node.rb +0 -18
- data/vendor/sass/lib/sass/tree/root_node.rb +0 -28
- data/vendor/sass/lib/sass/tree/rule_node.rb +0 -136
- data/vendor/sass/lib/sass/tree/variable_node.rb +0 -30
- data/vendor/sass/lib/sass/tree/visitors/base.rb +0 -75
- data/vendor/sass/lib/sass/tree/visitors/check_nesting.rb +0 -133
- data/vendor/sass/lib/sass/tree/visitors/convert.rb +0 -260
- data/vendor/sass/lib/sass/tree/visitors/cssize.rb +0 -175
- data/vendor/sass/lib/sass/tree/visitors/deep_copy.rb +0 -87
- data/vendor/sass/lib/sass/tree/visitors/perform.rb +0 -332
- data/vendor/sass/lib/sass/tree/visitors/set_options.rb +0 -97
- data/vendor/sass/lib/sass/tree/visitors/to_css.rb +0 -210
- data/vendor/sass/lib/sass/tree/warn_node.rb +0 -18
- data/vendor/sass/lib/sass/tree/while_node.rb +0 -18
- data/vendor/sass/lib/sass/util.rb +0 -721
- data/vendor/sass/lib/sass/util/subset_map.rb +0 -101
- data/vendor/sass/lib/sass/version.rb +0 -112
- data/vendor/sass/rails/init.rb +0 -1
- data/vendor/sass/sass.gemspec +0 -33
- data/vendor/sass/test/Gemfile +0 -4
- data/vendor/sass/test/Gemfile.lock +0 -19
- data/vendor/sass/test/sass/cache_test.rb +0 -89
- data/vendor/sass/test/sass/callbacks_test.rb +0 -61
- data/vendor/sass/test/sass/conversion_test.rb +0 -1199
- data/vendor/sass/test/sass/css2sass_test.rb +0 -373
- data/vendor/sass/test/sass/data/hsl-rgb.txt +0 -319
- data/vendor/sass/test/sass/engine_test.rb +0 -2567
- data/vendor/sass/test/sass/extend_test.rb +0 -1348
- data/vendor/sass/test/sass/fixtures/test_staleness_check_across_importers.css +0 -1
- data/vendor/sass/test/sass/fixtures/test_staleness_check_across_importers.scss +0 -1
- data/vendor/sass/test/sass/functions_test.rb +0 -1038
- data/vendor/sass/test/sass/importer_test.rb +0 -192
- data/vendor/sass/test/sass/less_conversion_test.rb +0 -653
- data/vendor/sass/test/sass/logger_test.rb +0 -58
- data/vendor/sass/test/sass/mock_importer.rb +0 -49
- data/vendor/sass/test/sass/more_results/more1.css +0 -9
- data/vendor/sass/test/sass/more_results/more1_with_line_comments.css +0 -26
- data/vendor/sass/test/sass/more_results/more_import.css +0 -29
- data/vendor/sass/test/sass/more_templates/_more_partial.sass +0 -2
- data/vendor/sass/test/sass/more_templates/more1.sass +0 -23
- data/vendor/sass/test/sass/more_templates/more_import.sass +0 -11
- data/vendor/sass/test/sass/plugin_test.rb +0 -472
- data/vendor/sass/test/sass/results/alt.css +0 -4
- data/vendor/sass/test/sass/results/basic.css +0 -9
- data/vendor/sass/test/sass/results/compact.css +0 -5
- data/vendor/sass/test/sass/results/complex.css +0 -86
- data/vendor/sass/test/sass/results/compressed.css +0 -1
- data/vendor/sass/test/sass/results/expanded.css +0 -19
- data/vendor/sass/test/sass/results/if.css +0 -3
- data/vendor/sass/test/sass/results/import.css +0 -31
- data/vendor/sass/test/sass/results/import_charset.css +0 -4
- data/vendor/sass/test/sass/results/import_charset_1_8.css +0 -4
- data/vendor/sass/test/sass/results/import_charset_ibm866.css +0 -4
- data/vendor/sass/test/sass/results/line_numbers.css +0 -49
- data/vendor/sass/test/sass/results/mixins.css +0 -95
- data/vendor/sass/test/sass/results/multiline.css +0 -24
- data/vendor/sass/test/sass/results/nested.css +0 -22
- data/vendor/sass/test/sass/results/options.css +0 -1
- data/vendor/sass/test/sass/results/parent_ref.css +0 -13
- data/vendor/sass/test/sass/results/script.css +0 -16
- data/vendor/sass/test/sass/results/scss_import.css +0 -31
- data/vendor/sass/test/sass/results/scss_importee.css +0 -2
- data/vendor/sass/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
- data/vendor/sass/test/sass/results/subdir/subdir.css +0 -3
- data/vendor/sass/test/sass/results/units.css +0 -11
- 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 +0 -285
- data/vendor/sass/test/sass/script_test.rb +0 -514
- data/vendor/sass/test/sass/scss/css_test.rb +0 -922
- data/vendor/sass/test/sass/scss/rx_test.rb +0 -156
- data/vendor/sass/test/sass/scss/scss_test.rb +0 -1273
- data/vendor/sass/test/sass/scss/test_helper.rb +0 -37
- data/vendor/sass/test/sass/templates/_imported_charset_ibm866.sass +0 -4
- data/vendor/sass/test/sass/templates/_imported_charset_utf8.sass +0 -4
- data/vendor/sass/test/sass/templates/_partial.sass +0 -2
- data/vendor/sass/test/sass/templates/alt.sass +0 -16
- data/vendor/sass/test/sass/templates/basic.sass +0 -23
- data/vendor/sass/test/sass/templates/bork1.sass +0 -2
- data/vendor/sass/test/sass/templates/bork2.sass +0 -2
- data/vendor/sass/test/sass/templates/bork3.sass +0 -2
- data/vendor/sass/test/sass/templates/bork4.sass +0 -2
- data/vendor/sass/test/sass/templates/bork5.sass +0 -3
- data/vendor/sass/test/sass/templates/compact.sass +0 -17
- data/vendor/sass/test/sass/templates/complex.sass +0 -305
- data/vendor/sass/test/sass/templates/compressed.sass +0 -15
- data/vendor/sass/test/sass/templates/expanded.sass +0 -17
- data/vendor/sass/test/sass/templates/if.sass +0 -11
- data/vendor/sass/test/sass/templates/import.sass +0 -12
- data/vendor/sass/test/sass/templates/import_charset.sass +0 -7
- data/vendor/sass/test/sass/templates/import_charset_1_8.sass +0 -4
- data/vendor/sass/test/sass/templates/import_charset_ibm866.sass +0 -9
- data/vendor/sass/test/sass/templates/importee.less +0 -2
- data/vendor/sass/test/sass/templates/importee.sass +0 -19
- data/vendor/sass/test/sass/templates/line_numbers.sass +0 -13
- data/vendor/sass/test/sass/templates/mixin_bork.sass +0 -5
- data/vendor/sass/test/sass/templates/mixins.sass +0 -76
- data/vendor/sass/test/sass/templates/multiline.sass +0 -20
- data/vendor/sass/test/sass/templates/nested.sass +0 -25
- data/vendor/sass/test/sass/templates/nested_bork1.sass +0 -2
- data/vendor/sass/test/sass/templates/nested_bork2.sass +0 -2
- data/vendor/sass/test/sass/templates/nested_bork3.sass +0 -2
- data/vendor/sass/test/sass/templates/nested_bork4.sass +0 -2
- data/vendor/sass/test/sass/templates/nested_bork5.sass +0 -2
- data/vendor/sass/test/sass/templates/nested_import.sass +0 -2
- data/vendor/sass/test/sass/templates/nested_mixin_bork.sass +0 -6
- data/vendor/sass/test/sass/templates/options.sass +0 -2
- data/vendor/sass/test/sass/templates/parent_ref.sass +0 -25
- data/vendor/sass/test/sass/templates/script.sass +0 -101
- data/vendor/sass/test/sass/templates/scss_import.scss +0 -11
- data/vendor/sass/test/sass/templates/scss_importee.scss +0 -1
- data/vendor/sass/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
- data/vendor/sass/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
- data/vendor/sass/test/sass/templates/subdir/subdir.sass +0 -6
- data/vendor/sass/test/sass/templates/units.sass +0 -11
- data/vendor/sass/test/sass/templates/warn.sass +0 -3
- data/vendor/sass/test/sass/templates/warn_imported.sass +0 -4
- data/vendor/sass/test/sass/test_helper.rb +0 -8
- data/vendor/sass/test/sass/util/subset_map_test.rb +0 -91
- data/vendor/sass/test/sass/util_test.rb +0 -266
- data/vendor/sass/test/test_helper.rb +0 -69
- data/vendor/sass/vendor/fssm/Gemfile +0 -3
- data/vendor/sass/vendor/fssm/LICENSE +0 -20
- data/vendor/sass/vendor/fssm/README.markdown +0 -83
- data/vendor/sass/vendor/fssm/Rakefile +0 -11
- data/vendor/sass/vendor/fssm/example.rb +0 -12
- data/vendor/sass/vendor/fssm/fssm.gemspec +0 -24
- data/vendor/sass/vendor/fssm/lib/fssm.rb +0 -37
- data/vendor/sass/vendor/fssm/lib/fssm/backends/fsevents.rb +0 -36
- data/vendor/sass/vendor/fssm/lib/fssm/backends/inotify.rb +0 -26
- data/vendor/sass/vendor/fssm/lib/fssm/backends/polling.rb +0 -25
- data/vendor/sass/vendor/fssm/lib/fssm/backends/rbfsevent.rb +0 -42
- data/vendor/sass/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +0 -131
- data/vendor/sass/vendor/fssm/lib/fssm/monitor.rb +0 -36
- data/vendor/sass/vendor/fssm/lib/fssm/path.rb +0 -94
- data/vendor/sass/vendor/fssm/lib/fssm/pathname.rb +0 -36
- data/vendor/sass/vendor/fssm/lib/fssm/state/directory.rb +0 -75
- data/vendor/sass/vendor/fssm/lib/fssm/state/file.rb +0 -24
- data/vendor/sass/vendor/fssm/lib/fssm/support.rb +0 -92
- data/vendor/sass/vendor/fssm/lib/fssm/tree.rb +0 -176
- data/vendor/sass/vendor/fssm/lib/fssm/version.rb +0 -3
- data/vendor/sass/vendor/fssm/profile/prof-cache.rb +0 -40
- data/vendor/sass/vendor/fssm/profile/prof-fssm-pathname.html +0 -1231
- data/vendor/sass/vendor/fssm/profile/prof-pathname-rubinius.rb +0 -35
- data/vendor/sass/vendor/fssm/profile/prof-pathname.rb +0 -68
- data/vendor/sass/vendor/fssm/profile/prof-plain-pathname.html +0 -988
- data/vendor/sass/vendor/fssm/profile/prof.html +0 -2379
- data/vendor/sass/vendor/fssm/spec/count_down_latch.rb +0 -151
- data/vendor/sass/vendor/fssm/spec/monitor_spec.rb +0 -202
- data/vendor/sass/vendor/fssm/spec/path_spec.rb +0 -96
- data/vendor/sass/vendor/fssm/spec/root/duck/quack.txt +0 -0
- data/vendor/sass/vendor/fssm/spec/root/file.css +0 -0
- data/vendor/sass/vendor/fssm/spec/root/file.rb +0 -0
- data/vendor/sass/vendor/fssm/spec/root/file.yml +0 -0
- data/vendor/sass/vendor/fssm/spec/root/moo/cow.txt +0 -0
- data/vendor/sass/vendor/fssm/spec/spec_helper.rb +0 -14
- data/vendor/sass/yard/callbacks.rb +0 -29
- data/vendor/sass/yard/default/fulldoc/html/css/common.sass +0 -26
- data/vendor/sass/yard/default/layout/html/footer.erb +0 -12
- data/vendor/sass/yard/inherited_hash.rb +0 -41
@@ -63,7 +63,8 @@ module Haml
|
|
63
63
|
|
64
64
|
# Input is escaped
|
65
65
|
def haml_concat_with_haml_xss(text = "")
|
66
|
-
|
66
|
+
raw = instance_variable_defined?('@_haml_concat_raw') ? @_haml_concat_raw : false
|
67
|
+
haml_concat_without_haml_xss(raw ? text : haml_xss_html_escape(text))
|
67
68
|
end
|
68
69
|
|
69
70
|
# Output is always HTML safe
|
@@ -148,18 +149,15 @@ module ActionView
|
|
148
149
|
alias_method :concat_without_haml_xss, :concat
|
149
150
|
alias_method :concat, :concat_with_haml_xss
|
150
151
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
else
|
157
|
-
safe_concat_without_haml_xss(string)
|
158
|
-
end
|
152
|
+
def safe_concat_with_haml_xss(string)
|
153
|
+
if is_haml?
|
154
|
+
haml_buffer.buffer.concat(string)
|
155
|
+
else
|
156
|
+
safe_concat_without_haml_xss(string)
|
159
157
|
end
|
160
|
-
alias_method :safe_concat_without_haml_xss, :safe_concat
|
161
|
-
alias_method :safe_concat, :safe_concat_with_haml_xss
|
162
158
|
end
|
159
|
+
alias_method :safe_concat_without_haml_xss, :safe_concat
|
160
|
+
alias_method :safe_concat, :safe_concat_with_haml_xss
|
163
161
|
end
|
164
162
|
end
|
165
163
|
end
|
data/lib/haml/html.rb
CHANGED
@@ -343,10 +343,10 @@ module Haml
|
|
343
343
|
output + child.to_haml(tabs + 1, options)
|
344
344
|
end
|
345
345
|
end
|
346
|
-
|
346
|
+
|
347
347
|
def dynamic_attributes
|
348
348
|
@dynamic_attributes ||= begin
|
349
|
-
|
349
|
+
Hash[attr_hash.map do |name, value|
|
350
350
|
next if value.empty?
|
351
351
|
full_match = nil
|
352
352
|
ruby_value = value.gsub(%r{<haml:loud>\s*(.+?)\s*</haml:loud>}) do
|
@@ -355,7 +355,7 @@ module Haml
|
|
355
355
|
end
|
356
356
|
next if ruby_value == value
|
357
357
|
[name, full_match ? ruby_value : %("#{ruby_value}")]
|
358
|
-
end
|
358
|
+
end]
|
359
359
|
end
|
360
360
|
end
|
361
361
|
|
@@ -366,7 +366,7 @@ module Haml
|
|
366
366
|
else
|
367
367
|
CGI.unescapeHTML(self.innerText)
|
368
368
|
end
|
369
|
-
|
369
|
+
|
370
370
|
content = erb_to_interpolation(content, options)
|
371
371
|
content.gsub!(/\A\s*\n(\s*)/, '\1')
|
372
372
|
original_indent = content[/\A(\s*)/, 1]
|
@@ -380,15 +380,15 @@ module Haml
|
|
380
380
|
def static_attribute?(name, options)
|
381
381
|
attr_hash[name] && !dynamic_attribute?(name, options)
|
382
382
|
end
|
383
|
-
|
383
|
+
|
384
384
|
def dynamic_attribute?(name, options)
|
385
385
|
options[:erb] and dynamic_attributes.key?(name)
|
386
386
|
end
|
387
|
-
|
387
|
+
|
388
388
|
def static_id?(options)
|
389
389
|
static_attribute?('id', options) && haml_css_attr?(attr_hash['id'])
|
390
390
|
end
|
391
|
-
|
391
|
+
|
392
392
|
def static_classname?(options)
|
393
393
|
static_attribute?('class', options)
|
394
394
|
end
|
@@ -401,11 +401,24 @@ module Haml
|
|
401
401
|
# that's prettier than that produced by Hash#inspect
|
402
402
|
def haml_attributes(options)
|
403
403
|
attrs = attr_hash.sort.map do |name, value|
|
404
|
-
|
404
|
+
haml_attribute_pair(name, value, options)
|
405
|
+
end
|
406
|
+
if options[:html_style_attributes]
|
407
|
+
"(#{attrs.join(' ')})"
|
408
|
+
else
|
409
|
+
"{#{attrs.join(', ')}}"
|
410
|
+
end
|
411
|
+
end
|
412
|
+
|
413
|
+
# Returns the string representation of a single attribute key value pair
|
414
|
+
def haml_attribute_pair(name, value, options)
|
415
|
+
value = dynamic_attribute?(name, options) ? dynamic_attributes[name] : value.inspect
|
416
|
+
if options[:html_style_attributes]
|
417
|
+
"#{name}=#{value}"
|
418
|
+
else
|
405
419
|
name = name.index(/\W/) ? name.inspect : ":#{name}"
|
406
420
|
"#{name} => #{value}"
|
407
421
|
end
|
408
|
-
"{#{attrs.join(', ')}}"
|
409
422
|
end
|
410
423
|
end
|
411
424
|
end
|
data/lib/haml/html/erb.rb
CHANGED
data/lib/haml/parser.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'strscan'
|
2
|
-
require 'haml/shared'
|
3
2
|
|
4
3
|
module Haml
|
5
4
|
module Parser
|
@@ -104,8 +103,8 @@ module Haml
|
|
104
103
|
break @template_tabs + 1 if flat? && whitespace =~ /^#{@flat_spaces}/
|
105
104
|
|
106
105
|
raise SyntaxError.new(<<END.strip.gsub("\n", ' '), line.index)
|
107
|
-
Inconsistent indentation: #{Haml::
|
108
|
-
but the rest of the document was indented using #{Haml::
|
106
|
+
Inconsistent indentation: #{Haml::Util.human_indentation whitespace, true} used for indentation,
|
107
|
+
but the rest of the document was indented using #{Haml::Util.human_indentation @indentation}.
|
109
108
|
END
|
110
109
|
end
|
111
110
|
end
|
@@ -151,7 +150,7 @@ END
|
|
151
150
|
@parent = @parent.children.last
|
152
151
|
end
|
153
152
|
|
154
|
-
if !flat? && @next_line.tabs - @line.tabs > 1
|
153
|
+
if !@haml_comment && !flat? && @next_line.tabs - @line.tabs > 1
|
155
154
|
raise SyntaxError.new("The line was indented #{@next_line.tabs - @line.tabs} levels deeper than the previous line.", @next_line.index)
|
156
155
|
end
|
157
156
|
|
@@ -199,10 +198,10 @@ END
|
|
199
198
|
when FILTER; push filter(text[1..-1].downcase)
|
200
199
|
when DOCTYPE
|
201
200
|
return push doctype(text) if text[0...3] == '!!!'
|
202
|
-
return push plain(text[3..-1].strip,
|
203
|
-
return push script(text[2..-1].strip,
|
204
|
-
return push flat_script(text[2..-1].strip,
|
205
|
-
return push plain(text[1..-1].strip,
|
201
|
+
return push plain(text[3..-1].strip, false) if text[1..2] == "=="
|
202
|
+
return push script(text[2..-1].strip, false) if text[1] == SCRIPT
|
203
|
+
return push flat_script(text[2..-1].strip, false) if text[1] == FLAT_SCRIPT
|
204
|
+
return push plain(text[1..-1].strip, false) if text[1] == ?\s
|
206
205
|
push plain(text)
|
207
206
|
when ESCAPE; push plain(text[1..-1])
|
208
207
|
else; push plain(text)
|
@@ -233,7 +232,7 @@ END
|
|
233
232
|
end
|
234
233
|
|
235
234
|
escape_html = @options[:escape_html] if escape_html.nil?
|
236
|
-
script(unescape_interpolation(text, escape_html),
|
235
|
+
script(unescape_interpolation(text, escape_html), false)
|
237
236
|
end
|
238
237
|
|
239
238
|
def script(text, escape_html = nil, preserve = false)
|
@@ -530,7 +529,7 @@ END
|
|
530
529
|
break if name.nil?
|
531
530
|
|
532
531
|
if name == false
|
533
|
-
text = (Haml::
|
532
|
+
text = (Haml::Util.balance(line, ?(, ?)) || [line]).first
|
534
533
|
raise Haml::SyntaxError.new("Invalid attribute list: #{text.inspect}.", last_line - 1)
|
535
534
|
end
|
536
535
|
attributes[name] = value
|
@@ -613,9 +612,10 @@ END
|
|
613
612
|
# `flat?' here is a little outdated,
|
614
613
|
# so we have to manually check if either the previous or current line
|
615
614
|
# closes the flat block, as well as whether a new block is opened.
|
616
|
-
|
615
|
+
line_defined = instance_variable_defined?('@line')
|
616
|
+
@line.tabs if line_defined
|
617
617
|
unless (flat? && !closes_flat?(line) && !closes_flat?(@line)) ||
|
618
|
-
(
|
618
|
+
(line_defined && @line.text[0] == ?: && line.full =~ %r[^#{@line.full[/^\s+/]}\s])
|
619
619
|
return next_line if line.text.empty?
|
620
620
|
|
621
621
|
handle_multiline(line)
|
@@ -664,8 +664,15 @@ END
|
|
664
664
|
text
|
665
665
|
end
|
666
666
|
|
667
|
+
# `text' is a Ruby multiline block if it:
|
668
|
+
# - ends with a comma
|
669
|
+
# - but not "?," which is a character literal
|
670
|
+
# (however, "x?," is a method call and not a literal)
|
671
|
+
# - and not "?\," which is a character literal
|
672
|
+
#
|
667
673
|
def is_ruby_multiline?(text)
|
668
|
-
text && text.length > 1 && text[-1] == ?, &&
|
674
|
+
text && text.length > 1 && text[-1] == ?, &&
|
675
|
+
!((text[-3..-2] =~ /\W\?/) || text[-3..-2] == "?\\")
|
669
676
|
end
|
670
677
|
|
671
678
|
def contains_interpolation?(str)
|
@@ -674,7 +681,7 @@ END
|
|
674
681
|
|
675
682
|
def unescape_interpolation(str, escape_html = nil)
|
676
683
|
res = ''
|
677
|
-
rest = Haml::
|
684
|
+
rest = Haml::Util.handle_interpolation str.dump do |scan|
|
678
685
|
escapes = (scan[2].size - 1) / 2
|
679
686
|
res << scan.matched[0...-3 - escapes]
|
680
687
|
if escapes % 2 == 1
|
@@ -689,7 +696,7 @@ END
|
|
689
696
|
end
|
690
697
|
|
691
698
|
def balance(*args)
|
692
|
-
res = Haml::
|
699
|
+
res = Haml::Util.balance(*args)
|
693
700
|
return res if res
|
694
701
|
raise SyntaxError.new("Unbalanced brackets.")
|
695
702
|
end
|
data/lib/haml/railtie.rb
CHANGED
@@ -1,19 +1,8 @@
|
|
1
|
-
if
|
2
|
-
raise <<ERROR
|
3
|
-
Haml no longer supports Rails 3 versions before beta 4.
|
4
|
-
Please upgrade to Rails 3.0.0.beta4 or later.
|
5
|
-
ERROR
|
6
|
-
end
|
7
|
-
|
8
|
-
# Rails 3.0.0.beta.2+
|
9
|
-
if defined?(ActiveSupport) && Haml::Util.has?(:public_method, ActiveSupport, :on_load)
|
1
|
+
if defined?(ActiveSupport)
|
10
2
|
require 'haml/template/options'
|
11
|
-
autoload(:Sass, 'sass/rails3_shim')
|
12
3
|
ActiveSupport.on_load(:before_initialize) do
|
13
|
-
# resolve autoload if it looks like they're using Sass without options
|
14
|
-
Sass if File.exist?(File.join(Rails.root, 'public/stylesheets/sass'))
|
15
4
|
ActiveSupport.on_load(:action_view) do
|
16
|
-
|
5
|
+
require "haml/template"
|
17
6
|
end
|
18
7
|
end
|
19
8
|
end
|
data/lib/haml/template.rb
CHANGED
@@ -2,98 +2,31 @@ require 'haml/template/options'
|
|
2
2
|
require 'haml/engine'
|
3
3
|
require 'haml/helpers/action_view_mods'
|
4
4
|
require 'haml/helpers/action_view_extensions'
|
5
|
-
|
6
|
-
if defined?(ActionPack::VERSION::STRING) &&
|
7
|
-
ActionPack::VERSION::STRING == "2.3.6"
|
8
|
-
raise "Haml does not support Rails 2.3.6. Please upgrade to 2.3.7 or later."
|
9
|
-
end
|
5
|
+
require 'haml/helpers/xss_mods'
|
10
6
|
|
11
7
|
module Haml
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
# if it's available and enabled.
|
16
|
-
#
|
17
|
-
# @return [Boolean] Whether the XSS integration was enabled.
|
18
|
-
def try_enabling_xss_integration
|
19
|
-
return false unless (ActionView::Base.respond_to?(:xss_safe?) && ActionView::Base.xss_safe?) ||
|
20
|
-
# We check for ActiveSupport#on_load here because if we're loading Haml that way, it means:
|
21
|
-
# A) we're in Rails 3 so XSS support is always on, and
|
22
|
-
# B) we might be in Rails 3 beta 3 where the load order is broken and xss_safe? is undefined
|
23
|
-
(defined?(ActiveSupport) && Haml::Util.has?(:public_method, ActiveSupport, :on_load))
|
24
|
-
|
25
|
-
Haml::Template.options[:escape_html] = true
|
26
|
-
|
27
|
-
Haml::Util.module_eval {def rails_xss_safe?; true; end}
|
28
|
-
|
29
|
-
require 'haml/helpers/xss_mods'
|
30
|
-
Haml::Helpers.send(:include, Haml::Helpers::XssMods)
|
31
|
-
|
32
|
-
Haml::Compiler.module_eval do
|
33
|
-
def precompiled_method_return_value_with_haml_xss
|
34
|
-
"::Haml::Util.html_safe(#{precompiled_method_return_value_without_haml_xss})"
|
35
|
-
end
|
36
|
-
alias_method :precompiled_method_return_value_without_haml_xss, :precompiled_method_return_value
|
37
|
-
alias_method :precompiled_method_return_value, :precompiled_method_return_value_with_haml_xss
|
38
|
-
end
|
39
|
-
|
40
|
-
true
|
8
|
+
module Compiler
|
9
|
+
def precompiled_method_return_value_with_haml_xss
|
10
|
+
"::Haml::Util.html_safe(#{precompiled_method_return_value_without_haml_xss})"
|
41
11
|
end
|
12
|
+
alias_method :precompiled_method_return_value_without_haml_xss, :precompiled_method_return_value
|
13
|
+
alias_method :precompiled_method_return_value, :precompiled_method_return_value_with_haml_xss
|
42
14
|
end
|
43
|
-
end
|
44
15
|
|
45
|
-
|
46
|
-
|
47
|
-
end
|
16
|
+
module Helpers
|
17
|
+
include Haml::Helpers::XssMods
|
18
|
+
end
|
48
19
|
|
49
|
-
|
50
|
-
|
51
|
-
end
|
20
|
+
module Util
|
21
|
+
undef :rails_xss_safe? if defined? rails_xss_safe?
|
22
|
+
def rails_xss_safe?; true; end
|
23
|
+
end
|
52
24
|
|
53
|
-
# Decide how we want to load Haml into Rails.
|
54
|
-
# Patching was necessary for versions <= 2.0.1,
|
55
|
-
# but we can make it a normal handler for higher versions.
|
56
|
-
if defined?(ActionView::TemplateHandler) ||
|
57
|
-
(defined?(ActionView::Template) && defined?(ActionView::Template::Handler)) ||
|
58
|
-
# Rails >= 3.2.0 uses Handlers instead of Handler
|
59
|
-
(defined?(ActionView::Template) && defined?(ActionView::Template::Handlers))
|
60
|
-
require 'haml/template/plugin'
|
61
|
-
else
|
62
|
-
require 'haml/template/patch'
|
63
25
|
end
|
64
26
|
|
65
|
-
# Enable XSS integration. Use Rails' after_initialize method
|
66
|
-
# so that integration will be checked after the rails_xss plugin is loaded
|
67
|
-
# (for Rails 2.3.* where it's not enabled by default).
|
68
|
-
#
|
69
|
-
# If we're running under Rails 3, though, we don't want to use after_intialize,
|
70
|
-
# since Haml loading has already been deferred via ActiveSupport.on_load.
|
71
|
-
if defined?(Rails.configuration.after_initialize) &&
|
72
|
-
!(defined?(ActiveSupport) && Haml::Util.has?(:public_method, ActiveSupport, :on_load))
|
73
|
-
Rails.configuration.after_initialize {Haml::Template.try_enabling_xss_integration}
|
74
|
-
else
|
75
|
-
Haml::Template.try_enabling_xss_integration
|
76
|
-
end
|
77
27
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
# because the new init file is sufficiently flexible
|
84
|
-
# to not need updating.
|
85
|
-
rails_init_file = File.join(Haml::Util.rails_root, 'vendor', 'plugins', 'haml', 'init.rb')
|
86
|
-
haml_init_file = Haml::Util.scope('init.rb')
|
87
|
-
begin
|
88
|
-
if File.exists?(rails_init_file)
|
89
|
-
require 'fileutils'
|
90
|
-
FileUtils.cp(haml_init_file, rails_init_file) unless FileUtils.cmp(rails_init_file, haml_init_file)
|
91
|
-
end
|
92
|
-
rescue SystemCallError
|
93
|
-
Haml::Util.haml_warn <<END
|
94
|
-
HAML WARNING:
|
95
|
-
#{rails_init_file} is out of date and couldn't be automatically updated.
|
96
|
-
Please run `haml --rails #{File.expand_path(Haml::Util.rails_root)}' to update it.
|
97
|
-
END
|
98
|
-
end
|
99
|
-
end
|
28
|
+
Haml::Template.options[:ugly] ||= Rails.env.development?
|
29
|
+
Haml::Template.options[:escape_html] = true
|
30
|
+
Haml::Template.options[:format] ||= :html5
|
31
|
+
|
32
|
+
require 'haml/template/plugin'
|
@@ -8,7 +8,7 @@ module Haml
|
|
8
8
|
|
9
9
|
@options = {}
|
10
10
|
# The options hash for Haml when used within Rails.
|
11
|
-
# See {file:
|
11
|
+
# See {file:REFERENCE.md#haml_options the Haml options documentation}.
|
12
12
|
#
|
13
13
|
# @return [{Symbol => Object}]
|
14
14
|
attr_accessor :options
|
data/lib/haml/template/plugin.rb
CHANGED
@@ -1,37 +1,24 @@
|
|
1
|
-
# This file makes Haml work with Rails
|
2
|
-
# using the > 2.0.1 template handler API.
|
3
|
-
|
4
1
|
module Haml
|
5
|
-
|
6
|
-
#
|
7
|
-
class Plugin <
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
include Haml::Util.av_template_class(:Handlers)::Compilable
|
2
|
+
|
3
|
+
# This module makes Haml work with Rails using the template handler API.
|
4
|
+
class Plugin < ActionView::Template::Handlers::ERB.superclass
|
5
|
+
|
6
|
+
# Rails 3.1+, template handlers don't inherit from anything. In <= 3.0, they
|
7
|
+
# do. To avoid messy logic figuring this out, we just inherit from whatever
|
8
|
+
# the ERB handler does.
|
9
|
+
|
10
|
+
# In Rails 3.1+, we don't need to include Compilable.
|
11
|
+
if ::Rails.version < "3.1"
|
12
|
+
include ActionView::Template::Handlers::Compilable
|
17
13
|
end
|
18
14
|
|
19
15
|
def handles_encoding?; true; end
|
20
16
|
|
21
17
|
def compile(template)
|
22
18
|
options = Haml::Template.options.dup
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
if template.respond_to? :source
|
27
|
-
# Template has a generic identifier in Rails >=3.0.0
|
28
|
-
options[:filename] = template.respond_to?(:identifier) ? template.identifier : template.filename
|
29
|
-
source = template.source
|
30
|
-
else
|
31
|
-
source = template
|
32
|
-
end
|
33
|
-
|
34
|
-
Haml::Engine.new(source, options).send(:precompiled_with_ambles, [])
|
19
|
+
options[:mime_type] = template.mime_type if template.respond_to? :mime_type
|
20
|
+
options[:filename] = template.identifier
|
21
|
+
Haml::Engine.new(template.source, options).send(:precompiled_with_ambles, [])
|
35
22
|
end
|
36
23
|
|
37
24
|
# In Rails 3.1+, #call takes the place of #compile
|
@@ -45,79 +32,6 @@ module Haml
|
|
45
32
|
end
|
46
33
|
end
|
47
34
|
end
|
48
|
-
|
49
|
-
# Rails 3.0 prints a deprecation warning when block helpers
|
50
|
-
# return strings that go unused.
|
51
|
-
# We want to print the same deprecation warning,
|
52
|
-
# so we have to compile in a method call to check for it.
|
53
|
-
#
|
54
|
-
# I don't like having this in the compilation pipeline,
|
55
|
-
# and I'd like to get rid of it once Rails 3.1 is well-established.
|
56
|
-
if defined?(ActionView::OutputBuffer) &&
|
57
|
-
Haml::Util.has?(:instance_method, ActionView::OutputBuffer, :append_if_string=)
|
58
|
-
module Compiler
|
59
|
-
def compile_silent_script_with_haml_block_deprecation(&block)
|
60
|
-
unless block && !@node.value[:keyword] &&
|
61
|
-
@node.value[:text] =~ ActionView::Template::Handlers::Erubis::BLOCK_EXPR
|
62
|
-
return compile_silent_script_without_haml_block_deprecation(&block)
|
63
|
-
end
|
64
|
-
|
65
|
-
@node.value[:text] = "_hamlout.append_if_string= #{@node.value[:text]}"
|
66
|
-
compile_silent_script_without_haml_block_deprecation(&block)
|
67
|
-
end
|
68
|
-
alias_method :compile_silent_script_without_haml_block_deprecation, :compile_silent_script
|
69
|
-
alias_method :compile_silent_script, :compile_silent_script_with_haml_block_deprecation
|
70
|
-
end
|
71
|
-
|
72
|
-
class Buffer
|
73
|
-
def append_if_string=(value)
|
74
|
-
if value.is_a?(String) && !value.is_a?(ActionView::NonConcattingString)
|
75
|
-
ActiveSupport::Deprecation.warn("- style block helpers are deprecated. Please use =", caller)
|
76
|
-
buffer << value
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
35
|
end
|
82
36
|
|
83
|
-
|
84
|
-
ActionView::Template
|
85
|
-
else
|
86
|
-
ActionView::Base
|
87
|
-
end.register_template_handler(:haml, Haml::Plugin)
|
88
|
-
|
89
|
-
# In Rails 2.0.2, ActionView::TemplateError took arguments
|
90
|
-
# that we can't fill in from the Haml::Plugin context.
|
91
|
-
# Thus, we've got to monkeypatch ActionView::Base to catch the error.
|
92
|
-
if defined?(ActionView::TemplateError) &&
|
93
|
-
ActionView::TemplateError.instance_method(:initialize).arity == 5
|
94
|
-
class ActionView::Base
|
95
|
-
def compile_template(handler, template, file_name, local_assigns)
|
96
|
-
render_symbol = assign_method_name(handler, template, file_name)
|
97
|
-
|
98
|
-
# Move begin up two lines so it captures compilation exceptions.
|
99
|
-
begin
|
100
|
-
render_source = create_template_source(handler, template, render_symbol, local_assigns.keys)
|
101
|
-
line_offset = @@template_args[render_symbol].size + handler.line_offset
|
102
|
-
|
103
|
-
file_name = 'compiled-template' if file_name.blank?
|
104
|
-
CompiledTemplates.module_eval(render_source, file_name, -line_offset)
|
105
|
-
rescue Exception => e # errors from template code
|
106
|
-
if logger
|
107
|
-
logger.debug "ERROR: compiling #{render_symbol} RAISED #{e}"
|
108
|
-
logger.debug "Function body: #{render_source}"
|
109
|
-
logger.debug "Backtrace: #{e.backtrace.join("\n")}"
|
110
|
-
end
|
111
|
-
|
112
|
-
# There's no way to tell Haml about the filename,
|
113
|
-
# so we've got to insert it ourselves.
|
114
|
-
e.backtrace[0].gsub!('(haml)', file_name) if e.is_a?(Haml::Error)
|
115
|
-
|
116
|
-
raise ActionView::TemplateError.new(extract_base_path_from(file_name) || view_paths.first, file_name || template, @assigns, template, e)
|
117
|
-
end
|
118
|
-
|
119
|
-
@@compile_time[render_symbol] = Time.now
|
120
|
-
# logger.debug "Compiled template #{file_name || template}\n ==> #{render_symbol}" if logger
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
37
|
+
ActionView::Template.register_template_handler(:haml, Haml::Plugin)
|