<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -41,7 +41,7 @@ module ActiveRecord #:nodoc:
             val = send(&quot;#{column.name}_without_html_escaping&quot;)
             
             #if htmlescaping is disabled, just send it as is.
-            return val if @html_escaping_disabled
+            return val if CrossSiteSniper.disabled?
             
             # Only escape strings. Other data types, such
             # as 'nil', should be returned uncorrupted.
@@ -64,9 +64,9 @@ module ActiveRecord #:nodoc:
         #catch without_html_escaping for non-column methods and simulate it
         if method_sym.to_s[/(.+)_without_html_escaping/]
           original_method = $1
-          @html_escaping_disabled = true
+          CrossSiteSniper.disabled = true
           val = self.send(original_method)
-          @html_escaping_disabled = false
+          CrossSiteSniper.disabled = false
           return val
         else
           super
@@ -123,3 +123,13 @@ module ActiveRecord #:nodoc:
     end
   end
 end
+
+class CrossSiteSniper
+  def self.disabled?
+    @disabled
+  end
+  
+  def self.disabled=(x)
+    @disabled = x
+  end
+end
\ No newline at end of file</diff>
      <filename>lib/cross_site_sniper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require 'test/unit'
 require 'rubygems'
-gem 'activerecord', '&gt;= 2.0.2'
+gem 'activerecord', '&gt;= 2.3.0'
 require 'active_record'
 require 'erb'
 require &quot;#{File.dirname(__FILE__)}/../init&quot;
@@ -12,7 +12,7 @@ class CrossSiteSniperTest &lt; Test::Unit::TestCase
   def setup
     setup_db
     @hunter = SnipeHunter.create(:name =&gt; '&lt;b&gt;One&lt;/b&gt;', :title =&gt; '&lt;b&gt;One Title&lt;/b&gt;', :description =&gt; '&lt;b&gt;One Description&lt;/b&gt;',:age =&gt; 42)
-    @snipe = Snipe.create(:species =&gt; '&lt;b&gt;Fitch&lt;/b&gt;', :genus =&gt; '&lt;b&gt;Abercrombie&lt;/b&gt;')
+    @snipe = Snipe.create(:species =&gt; '&lt;b&gt;Fitch&lt;/b&gt;', :genus =&gt; '&lt;b&gt;Abercrombie&lt;/b&gt;', :snipe_hunter =&gt; @hunter)
     @leprechaun = Leprechaun.create(:name =&gt; '&lt;b&gt;Clover McGillicuty&lt;/b&gt;')
   end
   
@@ -47,12 +47,15 @@ class CrossSiteSniperTest &lt; Test::Unit::TestCase
     assert_equal('&amp;lt;b&amp;gt;Fitch&amp;lt;/b&amp;gt;',snipe.species)
     assert_equal('&lt;b&gt;Abercrombie&lt;/b&gt;',snipe.genus)
     
+    assert_equal('&amp;lt;b&amp;gt;Fitch&amp;lt;/b&amp;gt;',hunter.first_snipe_species)
+    assert_equal('&lt;b&gt;Fitch&lt;/b&gt;',hunter.first_snipe_species_without_html_escaping)
+    
     assert_equal('&lt;b&gt;Clover McGillicuty&lt;/b&gt;',leprechaun.name)
   end
 end
 
 class SnipeHunter &lt; ActiveRecord::Base
-  
+  has_many :snipes
   #make title unescaped
   html_escape :except =&gt; :title
   
@@ -60,9 +63,12 @@ class SnipeHunter &lt; ActiveRecord::Base
   def description; '&lt;b&gt;Overriden&lt;/b&gt;'; end
   
   def name_and_age; &quot;#{name}(#{age})&quot;; end
+  
+  def first_snipe_species; snipes.first.species; end
 end
 
 class Snipe &lt; ActiveRecord::Base
+  belongs_to :snipe_hunter
   #only escape species
   html_escape :only =&gt; :species
 end
@@ -87,6 +93,7 @@ def setup_db
     end
     
     create_table :snipes do |t|
+      t.column :snipe_hunter_id, :integer
       t.column :species, :string
       t.column :genus, :string
     end</diff>
      <filename>test/cross_site_sniper_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>ff56d5b1646907f853553fe1c2d28ef4bb66414c</id>
    </parent>
  </parents>
  <author>
    <name>Jonathan Garvin</name>
    <email>jon@5valleys.com</email>
  </author>
  <url>http://github.com/wwidea/cross_site_sniper/commit/0791bd6cc2eb0ebe5a4077b0dac503f23c2a1a31</url>
  <id>0791bd6cc2eb0ebe5a4077b0dac503f23c2a1a31</id>
  <committed-date>2009-02-17T21:05:45-08:00</committed-date>
  <authored-date>2009-02-17T21:05:45-08:00</authored-date>
  <message>Fix turning off escaping on methods that call other text fields in other classes.</message>
  <tree>d512801f083a508d241addb0483f3c06f82c8e2c</tree>
  <committer>
    <name>Jonathan Garvin</name>
    <email>jon@5valleys.com</email>
  </committer>
</commit>
