aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-07-01 19:40:42 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-07-01 19:40:42 -0700
commit7f35c409024b61f7a9ff9bc983d08da58ffb3893 (patch)
tree6e1322befbbe91c47feb54477c8726f12fa9810c /activerecord
parentaa3ff85f4700d3b1bec92eb963bff8c6e88529e5 (diff)
parent71db2420a1ffb73dad6fd4ca64be01e422c2b37d (diff)
downloadrails-7f35c409024b61f7a9ff9bc983d08da58ffb3893.tar.gz
rails-7f35c409024b61f7a9ff9bc983d08da58ffb3893.tar.bz2
rails-7f35c409024b61f7a9ff9bc983d08da58ffb3893.zip
Merge pull request #11229 from neerajdotname/deprecated-default-scope
calling default_scope without a proc will raise ArgumentError
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG.md4
-rw-r--r--activerecord/lib/active_record/scoping/default.rb5
-rw-r--r--activerecord/test/cases/scoping/named_scoping_test.rb5
3 files changed, 8 insertions, 6 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index f99f1501f6..fe06670166 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Calling default_scope without a proc will now raise `ArgumentError`.
+
+ *Neeraj Singh*
+
* Removed deprecated method `type_cast_code` from Column.
*Neeraj Singh*
diff --git a/activerecord/lib/active_record/scoping/default.rb b/activerecord/lib/active_record/scoping/default.rb
index 59bdb9166e..a5d6aad3f0 100644
--- a/activerecord/lib/active_record/scoping/default.rb
+++ b/activerecord/lib/active_record/scoping/default.rb
@@ -83,12 +83,11 @@ module ActiveRecord
scope = Proc.new if block_given?
if scope.is_a?(Relation) || !scope.respond_to?(:call)
- ActiveSupport::Deprecation.warn(
- "Calling #default_scope without a block is deprecated. For example instead " \
+ raise ArgumentError,
+ "Support for calling #default_scope without a block is removed. For example instead " \
"of `default_scope where(color: 'red')`, please use " \
"`default_scope { where(color: 'red') }`. (Alternatively you can just redefine " \
"self.default_scope.)"
- )
end
self.default_scopes += [scope]
diff --git a/activerecord/test/cases/scoping/named_scoping_test.rb b/activerecord/test/cases/scoping/named_scoping_test.rb
index 73ff8abb4e..abd0b8621a 100644
--- a/activerecord/test/cases/scoping/named_scoping_test.rb
+++ b/activerecord/test/cases/scoping/named_scoping_test.rb
@@ -445,14 +445,13 @@ class NamedScopingTest < ActiveRecord::TestCase
assert_equal [posts(:welcome).title], klass.welcome_2.map(&:title)
end
- def test_eager_default_scope_relations_are_deprecated
+ def test_eager_default_scope_relations_are_remove
klass = Class.new(ActiveRecord::Base)
klass.table_name = 'posts'
- assert_deprecated do
+ assert_raises(ArgumentError) do
klass.send(:default_scope, klass.where(:id => posts(:welcome).id))
end
- assert_equal [posts(:welcome).title], klass.all.map(&:title)
end
def test_subclass_merges_scopes_properly