<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/safe_erb/taint_helpers.rb</filename>
    </added>
    <added>
      <filename>test/taint_helpers_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,7 @@
 # SafeERB
 
 require 'safe_erb/common'
+require 'safe_erb/taint_helpers'
 require 'safe_erb/assertion_helpers'
 require 'safe_erb/erb_extensions'
 require 'safe_erb/i18n_extensions'</diff>
      <filename>lib/safe_erb.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,17 +1,13 @@
 module ActionView
   module Helpers
     module SanitizeHelper
-      def strip_tags_with_untaint(html)
-        strip_tags_without_untaint(html).untaint
-      end
-      alias_method_chain :strip_tags, :untaint
+      extend SafeErb::TaintHelpers
+      untaint_result :strip_tags
     end
 
     module TagHelper
-      def escape_once_with_untaint(html)
-        escape_once_without_untaint(html).untaint
-      end
-      alias_method_chain :escape_once, :untaint
+      extend SafeErb::TaintHelpers
+      untaint_result :escape_once
     end
   end
 end</diff>
      <filename>lib/safe_erb/action_view_helpers_extensions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -46,17 +46,14 @@ class ERB
   end
   
   module Util
-    def html_escape_with_untaint(s)
-      html_escape_without_untaint(s).untaint
-    end
-    alias_method_chain :html_escape, :untaint
-
-    def h_with_untaint(s)
-      h_without_untaint(s).untaint
-    end
-    alias_method_chain :h, :untaint
+    extend SafeErb::TaintHelpers
+    
+    untaint_result :html_escape
+    untaint_result :h
 
-    module_function :h
+    # For some unknown reason, these functions exist as both instance and
+    # module functions in the standard ERB::Util class.
     module_function :html_escape
+    module_function :h
   end
 end</diff>
      <filename>lib/safe_erb/erb_extensions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,4 @@ class ErbTest &lt; ActiveSupport::TestCase
     assert_not_tainted html_escape(&quot;foo&quot;.taint)
     assert_not_tainted ERB::Util.html_escape(&quot;foo&quot;.taint)
   end
-
-
 end</diff>
      <filename>test/erb_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>59da52b67387d74b715a2a7dca738a3e4f7ee37a</id>
    </parent>
  </parents>
  <author>
    <name>Eric Kidd</name>
    <email>git@randomhacks.net</email>
  </author>
  <url>http://github.com/emk/safe_erb/commit/34c45ba0d2786f645cc8fc88c3d58166648827ae</url>
  <id>34c45ba0d2786f645cc8fc88c3d58166648827ae</id>
  <committed-date>2008-12-21T08:15:32-08:00</committed-date>
  <authored-date>2008-12-21T08:15:32-08:00</authored-date>
  <message>Add declarative untaint_result helper

This can be used to automatically untaint the return value of a specific
function without having to wrap it manually.</message>
  <tree>3ff072cce63bb792432a62a7a9ab02ac858afe3f</tree>
  <committer>
    <name>Eric Kidd</name>
    <email>git@randomhacks.net</email>
  </committer>
</commit>
