aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorArun Agrawal <arunagw@gmail.com>2013-07-03 21:48:52 +0200
committerArun Agrawal <arunagw@gmail.com>2013-07-03 23:23:11 +0200
commit50cbc03d18c5984347965a94027879623fc44cce (patch)
treea17969704ef5e65d3a678237066fec1abd090352 /activerecord
parent9105c59af05d3219e2811cab0642badbb4af5398 (diff)
downloadrails-50cbc03d18c5984347965a94027879623fc44cce.tar.gz
rails-50cbc03d18c5984347965a94027879623fc44cce.tar.bz2
rails-50cbc03d18c5984347965a94027879623fc44cce.zip
Remove deprecated `scope` use without passing a callable object.
Removed tests from deprecated code.
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG.md4
-rw-r--r--activerecord/lib/active_record/scoping/named.rb13
-rw-r--r--activerecord/test/cases/scoping/named_scoping_test.rb10
3 files changed, 4 insertions, 23 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index d64d23613f..5a8876c282 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Remove deprecated `scope` use without passing a callable object.
+
+ *Arun Agrawal*
+
* Remove deprecated `transaction_joinable=` in favor of `begin_transaction`
with `:joinable` option.
diff --git a/activerecord/lib/active_record/scoping/named.rb b/activerecord/lib/active_record/scoping/named.rb
index e7d5e6ce84..7c51aa6979 100644
--- a/activerecord/lib/active_record/scoping/named.rb
+++ b/activerecord/lib/active_record/scoping/named.rb
@@ -141,19 +141,6 @@ module ActiveRecord
def scope(name, body, &block)
extension = Module.new(&block) if block
- # Check body.is_a?(Relation) to prevent the relation actually being
- # loaded by respond_to?
- if body.is_a?(Relation) || !body.respond_to?(:call)
- ActiveSupport::Deprecation.warn(
- "Using #scope without passing a callable object is deprecated. For " \
- "example `scope :red, where(color: 'red')` should be changed to " \
- "`scope :red, -> { where(color: 'red') }`. There are numerous gotchas " \
- "in the former usage and it makes the implementation more complicated " \
- "and buggy. (If you prefer, you can just define a class method named " \
- "`self.red`.)"
- )
- end
-
singleton_class.send(:define_method, name) do |*args|
if body.respond_to?(:call)
scope = all.scoping { body.call(*args) }
diff --git a/activerecord/test/cases/scoping/named_scoping_test.rb b/activerecord/test/cases/scoping/named_scoping_test.rb
index abd0b8621a..72c9787b84 100644
--- a/activerecord/test/cases/scoping/named_scoping_test.rb
+++ b/activerecord/test/cases/scoping/named_scoping_test.rb
@@ -435,16 +435,6 @@ class NamedScopingTest < ActiveRecord::TestCase
end
end
- def test_eager_scopes_are_deprecated
- klass = Class.new(ActiveRecord::Base)
- klass.table_name = 'posts'
-
- assert_deprecated do
- klass.scope :welcome_2, klass.where(:id => posts(:welcome).id)
- end
- assert_equal [posts(:welcome).title], klass.welcome_2.map(&:title)
- end
-
def test_eager_default_scope_relations_are_remove
klass = Class.new(ActiveRecord::Base)
klass.table_name = 'posts'