Index: lib/haml/engine.rb
===================================================================
--- lib/haml/engine.rb (revision 606)
+++ lib/haml/engine.rb (working copy)
@@ -590,12 +590,22 @@
raise HamlError.new("Filter \"#{filter}\" is not defined!")
end
else
- filtered = filter.new(@filter_buffer).render
+ if filter.instance_method(:render).arity == 0
+ filtered = filter.new(@filter_buffer).render
- unless filter == Haml::Filters::Preserve
- push_text(filtered.rstrip.gsub("\n", "\n#{' ' *
@output_tabs}"))
+ unless filter == Haml::Filters::Preserve
+ push_text(filtered.rstrip.gsub("\n", "\n#{' ' *
@output_tabs}"))
+ else
+ push_silent("_hamlout.buffer << #{filtered.dump} << \"\\n
\"\n")
+ end
else
- push_silent("_hamlout.buffer << #{filtered.dump} << \"\\n
\"\n")
+ push_silent(
+ "haml_temp = #{filter.name}" +
+ ".new([EMAIL PROTECTED])" +
+ ".render(self).rstrip" +
+ ".gsub(\"\\n\", \"\\n#{' ' * @output_tabs}\")\n", true)
+ @precompiled <<
+ "haml_temp = _hamlout.push_script(haml_temp, false, nil)
\n"
end
end
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Haml" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/haml?hl=en
-~----------~----~----~----~------~----~------~--~---