aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2016-07-29 14:45:38 -0700
committerGitHub <noreply@github.com>2016-07-29 14:45:38 -0700
commit815b730b1b79158511f9f4c8465c476b9fe9b7e0 (patch)
treeba625a7249b4da3072d05ec27f4ce643d5010f73
parent3916656f8e9700eb5f1cfc441ff66e1f12173683 (diff)
parentafc9a8256741bfd7a3ff5c5d60b9135dace80f29 (diff)
downloadrails-815b730b1b79158511f9f4c8465c476b9fe9b7e0.tar.gz
rails-815b730b1b79158511f9f4c8465c476b9fe9b7e0.tar.bz2
rails-815b730b1b79158511f9f4c8465c476b9fe9b7e0.zip
Merge pull request #25992 from rails/revert-25914-jm/not_in
Revert "Adds `not_in?` onto Object"
-rw-r--r--activesupport/CHANGELOG.md12
-rw-r--r--activesupport/lib/active_support/core_ext/object.rb1
-rw-r--r--activesupport/lib/active_support/core_ext/object/exclusion.rb15
-rw-r--r--activesupport/test/core_ext/object/exclusion_test.rb53
4 files changed, 0 insertions, 81 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md
index b39ef7bfb9..280620df1c 100644
--- a/activesupport/CHANGELOG.md
+++ b/activesupport/CHANGELOG.md
@@ -1,15 +1,3 @@
-* Introduce `not_in?` on `Object`.
-
- As an opposite method for `in?`, `not_in?` provides equivalent support for exclusion. This turns this:
-
- [1,2].exclude?(user_id)
-
- ...into this:
-
- user_id.not_in?([1,2])
-
- *Jon McCartie*
-
* Defines `Regexp.match?` for Ruby versions prior to 2.4. The predicate
has the same interface, but it does not have the performance boost. Its
purpose is to be able to write 2.4 compatible code.
diff --git a/activesupport/lib/active_support/core_ext/object.rb b/activesupport/lib/active_support/core_ext/object.rb
index a2c5a472f5..f4f9152d6a 100644
--- a/activesupport/lib/active_support/core_ext/object.rb
+++ b/activesupport/lib/active_support/core_ext/object.rb
@@ -4,7 +4,6 @@ require 'active_support/core_ext/object/duplicable'
require 'active_support/core_ext/object/deep_dup'
require 'active_support/core_ext/object/try'
require 'active_support/core_ext/object/inclusion'
-require 'active_support/core_ext/object/exclusion'
require 'active_support/core_ext/object/conversions'
require 'active_support/core_ext/object/instance_variables'
diff --git a/activesupport/lib/active_support/core_ext/object/exclusion.rb b/activesupport/lib/active_support/core_ext/object/exclusion.rb
deleted file mode 100644
index 58dfb649e5..0000000000
--- a/activesupport/lib/active_support/core_ext/object/exclusion.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-class Object
- # Returns true if this object is excluded in the argument. Argument must be
- # any object which responds to +#include?+. Usage:
- #
- # characters = ["Konata", "Kagami", "Tsukasa"]
- # "MoshiMoshi".not_in?(characters) # => true
- #
- # This will throw an +ArgumentError+ if the argument doesn't respond
- # to +#include?+.
- def not_in?(another_object)
- !another_object.include?(self)
- rescue NoMethodError
- raise ArgumentError.new("The parameter passed to #not_in? must respond to #include?")
- end
-end \ No newline at end of file
diff --git a/activesupport/test/core_ext/object/exclusion_test.rb b/activesupport/test/core_ext/object/exclusion_test.rb
deleted file mode 100644
index 487c97d255..0000000000
--- a/activesupport/test/core_ext/object/exclusion_test.rb
+++ /dev/null
@@ -1,53 +0,0 @@
-require 'abstract_unit'
-require 'active_support/core_ext/object/exclusion'
-
-class NotInTest < ActiveSupport::TestCase
- def test_not_in_array
- assert 1.not_in?([2, 3])
- assert_not 2.not_in?([1,2])
- end
-
- def test_not_in_hash
- h = { "a" => 100, "b" => 200 }
- assert "z".not_in?(h)
- assert_not "a".not_in?(h)
- end
-
- def test_not_in_string
- assert "ol".not_in?("hello")
- assert_not "lo".not_in?("hello")
- assert ?z.not_in?("hello")
- end
-
- def test_not_in_range
- assert 75.not_in?(1..50)
- assert_not 25.not_in?(1..50)
- end
-
- def test_not_in_set
- s = Set.new([1,2])
- assert 3.not_in?(s)
- assert_not 1.not_in?(s)
- end
-
- module A
- end
- class B
- include A
- end
- class C < B
- end
- class D
- end
-
- def test_not_in_module
- assert A.not_in?(D)
- assert A.not_in?(A)
- assert_not A.not_in?(B)
- assert_not A.not_in?(C)
- end
-
- def test_no_method_catching
- assert_raise(ArgumentError) { 1.not_in?(1) }
- end
-end