<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -21,7 +21,7 @@ module When
                     if callback.class == Symbol
                       record.send callback
                     elsif callback.class == String
-                      eval(callback, binding)
+                      eval(callback, record.send(:binding))
                     elsif callback.class == Proc || callback.class == Method
                       callback.call(record)
                     else</diff>
      <filename>lib/callbacks.rb</filename>
    </modified>
    <modified>
      <diff>@@ -182,120 +182,108 @@ class CallbacksTest &lt; Test::Unit::TestCase
 
   conditions.each do |condition|
     basic_callbacks.each do |callback| 
-      define_method &quot;test_#{callback}_with_if_condition_#{condition.class}_which_returns_true_should_change_company_bio&quot; do
-        Company.send callback.to_sym, 'self.bio = &quot;new bio&quot;', :if =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_if_condition_#{condition.class}_which_returns_true_should_change_company_name&quot; do
+        Company.send callback.to_sym, 'change_name', :if =&gt; condition
 
-        Company.bio = 'thoughtbot'
-        company = Company.new :flag =&gt; true
+        company = Company.new :name =&gt; 'thoughtbot', :flag =&gt; true
         assert company.save
-        assert_equal 'new bio', Company.bio
+        assert_equal 'new name', company.name
       end
       
-      define_method &quot;test_#{callback}_with_if_condition_#{condition.class}_which_returns_false_should_not_change_company_bio&quot; do
-        Company.send callback.to_sym, 'self.bio = &quot;new bio&quot;', :if =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_if_condition_#{condition.class}_which_returns_false_should_not_change_company_name&quot; do
+        Company.send callback.to_sym, 'change_name', :if =&gt; condition
 
-        Company.bio = 'thoughtbot'
-        company = Company.new :flag =&gt; false
+        company = Company.new :name =&gt; 'thoughtbot', :flag =&gt; false
         assert company.save
-        assert_equal 'thoughtbot', Company.bio
+        assert_equal 'thoughtbot', company.name
       end
       
-      define_method &quot;test_#{callback}_with_unless_condition_#{condition.class}_which_returns_true_should_not_change_company_bio&quot; do
-        Company.send callback.to_sym, 'self.bio = &quot;new bio&quot;', :unless =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_true_should_not_change_company_name&quot; do
+        Company.send callback.to_sym, 'change_name', :unless =&gt; condition
 
-        Company.bio = 'thoughtbot'
-        company = Company.new :flag =&gt; true
+        company = Company.new :name =&gt; 'thoughtbot', :flag =&gt; true
         assert company.save
-        assert_equal 'thoughtbot', Company.bio
+        assert_equal 'thoughtbot', company.name
       end
       
-      define_method &quot;test_#{callback}_with_unless_condition_#{condition.class}_which_returns_false_should_change_company_bio&quot; do
-        Company.send callback.to_sym, 'self.bio = &quot;new bio&quot;', :unless =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_false_should_change_company_name&quot; do
+        Company.send callback.to_sym, 'change_name', :unless =&gt; condition
 
-        Company.bio = 'thoughtbot'
-        company = Company.new :flag =&gt; false
+        company = Company.new :name =&gt; 'thoughtbot', :flag =&gt; false
         assert company.save
-        assert_equal 'new bio', Company.bio
+        assert_equal 'new name', company.name
       end
     end
     
     update_callbacks.each do |callback| 
-      define_method &quot;test_#{callback}_with_if_condition_#{condition.class}_which_returns_true_should_change_company_bio&quot; do
-        Company.send callback.to_sym, 'self.bio = &quot;new bio&quot;', :if =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_if_condition_#{condition.class}_which_returns_true_should_change_company_name&quot; do
+        Company.send callback.to_sym, 'change_name', :if =&gt; condition
 
-        Company.bio = 'thoughtbot'
         company = Company.create :flag =&gt; true
         assert company.save
-        assert_equal 'new bio', Company.bio
+        assert_equal 'new name', company.name
       end
       
-      define_method &quot;test_#{callback}_with_if_condition_#{condition.class}_which_returns_false_should_not_change_company_bio&quot; do
-        Company.send callback.to_sym, 'self.bio = &quot;new bio&quot;', :if =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_if_condition_#{condition.class}_which_returns_false_should_not_change_company_name&quot; do
+        Company.send callback.to_sym, 'change_name', :if =&gt; condition
 
-        Company.bio = 'thoughtbot'
-        company = Company.create :flag =&gt; false
+        company = Company.create :name =&gt; 'thoughtbot', :flag =&gt; false
         assert company.save
-        assert_equal 'thoughtbot', Company.bio
+        assert_equal 'thoughtbot', company.name
       end
       
-      define_method &quot;test_#{callback}_with_unless_condition_#{condition.class}_which_returns_true_should_not_change_company_bio&quot; do
-        Company.send callback.to_sym, 'self.bio = &quot;new bio&quot;', :unless =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_true_should_not_change_company_name&quot; do
+        Company.send callback.to_sym, 'change_name', :unless =&gt; condition
 
-        Company.bio = 'thoughtbot'
-        company = Company.create :flag =&gt; true
+        company = Company.create :name =&gt; 'thoughtbot', :flag =&gt; true
         assert company.save
-        assert_equal 'thoughtbot', Company.bio
+        assert_equal 'thoughtbot', company.name
       end
       
-      define_method &quot;test_#{callback}_with_unless_condition_#{condition.class}_which_returns_false_should_change_company_bio&quot; do
-        Company.send callback.to_sym, 'self.bio = &quot;new bio&quot;', :unless =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_false_should_change_company_name&quot; do
+        Company.send callback.to_sym, 'change_name', :unless =&gt; condition
 
-        Company.bio = 'thoughtbot'
-        company = Company.create :flag =&gt; false
+        company = Company.create :name =&gt; 'thoughtbot', :flag =&gt; false
         assert company.save
-        assert_equal 'new bio', Company.bio
+        assert_equal 'new name', company.name
       end
     end
     
     destroy_callbacks.each do |callback|
-      define_method &quot;test_#{callback}_with_if_condition_#{condition.class}_which_returns_true_should_toggle_class_flag&quot; do
-        Company.send callback.to_sym, 'self.flag = ! flag; true;', :if =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_if_condition_#{condition.class}_which_returns_true_should_toggle_flag&quot; do
+        Company.send callback.to_sym, 'toggle_flag; true', :if =&gt; condition
 
-        Company.flag = true
         company = Company.new :flag =&gt; true
         assert company.save
         assert company.destroy
-        assert ! Company.flag
+        assert ! company.flag
       end
       
-      define_method &quot;test_#{callback}_with_if_condition_#{condition.class}_which_returns_false_should_not_toggle_class_flag&quot; do
-        Company.send callback.to_sym, 'self.flag = ! flag', :if =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_if_condition_#{condition.class}_which_returns_false_should_not_toggle_flag&quot; do
+        Company.send callback.to_sym, 'toggle_flag', :if =&gt; condition
 
-        Company.flag = false
         company = Company.new :flag =&gt; false
         assert company.save
         assert company.destroy
-        assert ! Company.flag
+        assert ! company.flag
       end
       
-      define_method &quot;test_#{callback}_with_unless_condition_#{condition.class}_which_returns_true_should_not_toggle_class_flag&quot; do
-        Company.send callback.to_sym, 'self.flag = ! flag', :unless =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_true_should_not_toggle_flag&quot; do
+        Company.send callback.to_sym, 'toggle_flag', :unless =&gt; condition
 
-        Company.flag = true
         company = Company.new :flag =&gt; true
         assert company.save
         assert company.destroy
-        assert Company.flag
+        assert company.flag
       end
       
-      define_method &quot;test_#{callback}_with_unless_condition_#{condition.class}_which_returns_false_should_toggle_class_flag&quot; do
-        Company.send callback.to_sym, 'self.flag = ! flag', :unless =&gt; condition
+      define_method &quot;test_#{callback}_with_string_callback_unless_condition_#{condition.class}_which_returns_false_should_toggle_flag&quot; do
+        Company.send callback.to_sym, 'toggle_flag', :unless =&gt; condition
 
-        Company.flag = false
         company = Company.new :flag =&gt; false
         assert company.save
         assert company.destroy
-        assert Company.flag
+        assert company.flag
       end
     end
   end</diff>
      <filename>test/callbacks_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,5 @@
 class CompaniesController &lt; ActionController::Base
 
-  @@bio = nil
-  class &lt;&lt; self
-    def bio
-      @@bio
-    end
-    def bio=(bio)
-      @@bio = bio
-    end
-  end
-
   attr_accessor :flag,
     :name
 </diff>
      <filename>test/fixtures/companies_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,25 +1,5 @@
 class Company &lt; ActiveRecord::Base
 
-  @@bio = nil
-  class &lt;&lt; self
-    def bio
-      @@bio
-    end
-    def bio=(bio)
-      @@bio = bio
-    end
-  end
-
-  @@flag = nil
-  class &lt;&lt; self
-    def flag
-      @@flag
-    end
-    def flag=(flag)
-      @@flag = flag
-    end
-  end
-    
   attr_accessor :flag
 
   def change_name</diff>
      <filename>test/fixtures/company.rb</filename>
    </modified>
    <modified>
      <diff>@@ -119,78 +119,70 @@ class ValidationsTest &lt; Test::Unit::TestCase
   
   conditions.each do |condition|
     basic_validations.each do |validation| 
-      define_method &quot;test_#{validation}_with_if_condition_#{condition.class}_which_returns_true_should_change_company_bio&quot; do
-        Company.send validation.to_sym, 'self.bio = &quot;new bio&quot;', :if =&gt; condition
+      define_method &quot;test_#{validation}_with_string_callback_with_if_condition_#{condition.class}_which_returns_true_should_change_company_name&quot; do
+        Company.send validation.to_sym, 'change_name', :if =&gt; condition
         
-        Company.bio = 'thoughtbot'
-        company = Company.new :flag =&gt; true
+        company = Company.new :name =&gt; 'thoughtbot', :flag =&gt; true
         assert company.save
-        assert_equal 'new bio', Company.bio
+        assert_equal 'new name', company.name
       end
       
-      define_method &quot;test_#{validation}_with_if_condition_#{condition.class}_which_returns_false_should_not_change_company_bio&quot; do
-        Company.send validation.to_sym, 'self.bio = &quot;new bio&quot;', :if =&gt; condition
+      define_method &quot;test_#{validation}_with_string_callback_with_if_condition_#{condition.class}_which_returns_false_should_not_change_company_name&quot; do
+        Company.send validation.to_sym, 'change_name', :if =&gt; condition
         
-        Company.bio = 'thoughtbot'
-        company = Company.new :flag =&gt; false
+        company = Company.new :name =&gt; 'thoughtbot', :flag =&gt; false
         assert company.save
-        assert_equal 'thoughtbot', Company.bio
+        assert_equal 'thoughtbot', company.name
       end
       
-      define_method &quot;test_#{validation}_with_unless_condition_#{condition.class}_which_returns_true_should_not_change_company_bio&quot; do
-        Company.send validation.to_sym, 'self.bio = &quot;new bio&quot;', :unless =&gt; condition
+      define_method &quot;test_#{validation}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_true_should_not_change_company_name&quot; do
+        Company.send validation.to_sym, 'change_name', :unless =&gt; condition
         
-        Company.bio = 'thoughtbot'
-        company = Company.new :flag =&gt; true
+        company = Company.new :name =&gt; 'thoughtbot', :flag =&gt; true
         assert company.save
-        assert_equal 'thoughtbot', Company.bio
+        assert_equal 'thoughtbot', company.name
       end
 
-      define_method &quot;test_#{validation}_with_unless_condition_#{condition.class}_which_returns_false_should_change_company_bio&quot; do
-        Company.send validation.to_sym, 'self.bio = &quot;new bio&quot;', :unless =&gt; condition
+      define_method &quot;test_#{validation}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_false_should_change_company_name&quot; do
+        Company.send validation.to_sym, 'change_name', :unless =&gt; condition
         
-        Company.bio = 'thoughtbot'
-        company = Company.new :flag =&gt; false
+        company = Company.new :name =&gt; 'thoughtbot', :flag =&gt; false
         assert company.save
-        assert_equal 'new bio', Company.bio
+        assert_equal 'new name', company.name
       end
     end
     
     update_validations.each do |validation|
-      define_method &quot;test_#{validation}_with_if_condition_#{condition.class}_which_returns_true_should_change_company_bio&quot; do
-        Company.send validation.to_sym, 'self.bio = &quot;new bio&quot;', :if =&gt; condition
+      define_method &quot;test_#{validation}_with_string_callback_with_if_condition_#{condition.class}_which_returns_true_should_change_company_name&quot; do
+        Company.send validation.to_sym, 'change_name', :if =&gt; condition
         
-        Company.bio = 'thoughtbot'
-        company = Company.create :flag =&gt; true
+        company = Company.create :name =&gt; 'thoughtbot', :flag =&gt; true
         assert company.save
-        assert_equal 'new bio', Company.bio
+        assert_equal 'new name', company.name
       end
       
-      define_method &quot;test_#{validation}_with_if_condition_#{condition.class}_which_returns_false_should_not_change_company_bio&quot; do
-        Company.send validation.to_sym, 'self.bio = &quot;new bio&quot;', :if =&gt; condition
+      define_method &quot;test_#{validation}_with_string_callback_with_if_condition_#{condition.class}_which_returns_false_should_not_change_company_name&quot; do
+        Company.send validation.to_sym, 'change_name', :if =&gt; condition
         
-        Company.bio = 'thoughtbot'
-        company = Company.create :flag =&gt; false
+        company = Company.create :name =&gt; 'thoughtbot', :flag =&gt; false
         assert company.save
-        assert_equal 'thoughtbot', Company.bio
+        assert_equal 'thoughtbot', company.name
       end
       
-      define_method &quot;test_#{validation}_with_unless_condition_#{condition.class}_which_returns_true_should_not_change_company_bio&quot; do
-        Company.send validation.to_sym, 'self.bio = &quot;new bio&quot;', :unless =&gt; condition
+      define_method &quot;test_#{validation}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_true_should_not_change_company_name&quot; do
+        Company.send validation.to_sym, 'change_name', :unless =&gt; condition
         
-        Company.bio = 'thoughtbot'
-        company = Company.create :flag =&gt; true
+        company = Company.create :name =&gt; 'thoughtbot', :flag =&gt; true
         assert company.save
-        assert_equal 'thoughtbot', Company.bio
+        assert_equal 'thoughtbot', company.name
       end
 
-      define_method &quot;test_#{validation}_with_unless_condition_#{condition.class}_which_returns_false_should_change_company_bio&quot; do
-        Company.send validation.to_sym, 'self.bio = &quot;new bio&quot;', :unless =&gt; condition
+      define_method &quot;test_#{validation}_with_string_callback_with_unless_condition_#{condition.class}_which_returns_false_should_change_company_name&quot; do
+        Company.send validation.to_sym, 'change_name', :unless =&gt; condition
         
-        Company.bio = 'thoughtbot'
-        company = Company.create :flag =&gt; false
+        company = Company.create :name =&gt; 'thoughtbot', :flag =&gt; false
         assert company.save
-        assert_equal 'new bio', Company.bio
+        assert_equal 'new name', company.name
       end
     end
   end</diff>
      <filename>test/validations_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d8487bb35e0f65b57174dd237e439c1ee6c4c937</id>
    </parent>
  </parents>
  <author>
    <name>jcarroll</name>
    <email>jcarroll@7bbfaf0e-4d1d-0410-9690-a8bb5f8ef2aa</email>
  </author>
  <url>http://github.com/thoughtbot/when/commit/161cc080e7141aeddecfcdb75bb3c3d1ecf3d27e</url>
  <id>161cc080e7141aeddecfcdb75bb3c3d1ecf3d27e</id>
  <committed-date>2008-02-14T21:36:09-08:00</committed-date>
  <authored-date>2008-02-14T21:36:09-08:00</authored-date>
  <message>fixed callbacks String condition

git-svn-id: https://svn.thoughtbot.com/plugins/when/trunk@349 7bbfaf0e-4d1d-0410-9690-a8bb5f8ef2aa</message>
  <tree>a2b03d27cb31946dc3bc631349b64cf0f21e82db</tree>
  <committer>
    <name>jcarroll</name>
    <email>jcarroll@7bbfaf0e-4d1d-0410-9690-a8bb5f8ef2aa</email>
  </committer>
</commit>
