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
-~----------~----~----~----~------~----~------~--~---

Reply via email to