From b0967cc5cf5ce08e7fb0574692e3bb785e79973a Mon Sep 17 00:00:00 2001
From: Matthew Rudy Jacobs <matthewrudyjacobs@gmail.com>
Date: Tue, 2 Mar 2010 11:24:35 +0800
Subject: defining a named_scope which overwrites an existing method is now
 allowed we just log a warning.

This was motivated by the fact that :open is defined on all classes
as such the named_scope "open" can never be used, without hacking
ActiveRecord with an "undef_method" [#4083 state:resolved]

Signed-off-by: wycats <wycats@gmail.com>
---
 activerecord/test/cases/named_scope_test.rb | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

(limited to 'activerecord/test')

diff --git a/activerecord/test/cases/named_scope_test.rb b/activerecord/test/cases/named_scope_test.rb
index 6c2b4fa3a7..40c724b87e 100644
--- a/activerecord/test/cases/named_scope_test.rb
+++ b/activerecord/test/cases/named_scope_test.rb
@@ -371,8 +371,21 @@ class NamedScopeTest < ActiveRecord::TestCase
   end
 
   def test_named_scopes_with_reserved_names
-    [:where, :with_scope].each do |protected_method|
-      assert_raises(ArgumentError) { Topic.scope protected_method }
+    class << Topic
+      def public_method; end
+      public :public_method
+      
+      def protected_method; end
+      protected :protected_method
+      
+      def private_method; end
+      private :private_method
+    end
+    
+    [:public_method, :protected_method, :private_method].each do |reserved_method|
+      assert Topic.respond_to?(reserved_method, true)
+      ActiveRecord::Base.logger.expects(:warn)
+      Topic.scope(reserved_method)
     end
   end
 
-- 
cgit v1.2.3