From 94ca3e0a571dba0fe41ca18d61634c5f3aa11209 Mon Sep 17 00:00:00 2001 From: Andrew White Date: Tue, 5 May 2015 05:22:30 +0100 Subject: Add Module#remove_possible_singleton_method This is primarily to fix method redefinition warnings in class_attribute but may be of use in other places where we define singleton methods. --- .../test/core_ext/module/remove_method_test.rb | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'activesupport/test') diff --git a/activesupport/test/core_ext/module/remove_method_test.rb b/activesupport/test/core_ext/module/remove_method_test.rb index 4657f0c175..77774afb0d 100644 --- a/activesupport/test/core_ext/module/remove_method_test.rb +++ b/activesupport/test/core_ext/module/remove_method_test.rb @@ -6,19 +6,31 @@ module RemoveMethodTests def do_something return 1 end - + + class << self + def do_something_else + return 2 + end + end end end class RemoveMethodTest < ActiveSupport::TestCase - + def test_remove_method_from_an_object RemoveMethodTests::A.class_eval{ self.remove_possible_method(:do_something) } assert !RemoveMethodTests::A.new.respond_to?(:do_something) end - + + def test_remove_singleton_method_from_an_object + RemoveMethodTests::A.class_eval{ + self.remove_possible_singleton_method(:do_something_else) + } + assert !RemoveMethodTests::A.respond_to?(:do_something_else) + end + def test_redefine_method_in_an_object RemoveMethodTests::A.class_eval{ self.redefine_method(:do_something) { return 100 } -- cgit v1.2.3