Do not delegate AR::Base#empty? to all

Unlike `one?` and `none?`, `empty?` has interactions with methods
outside of enumerable. It also doesn't fit in the same vein.
`Topic.any?` makes sense. `Topic.empty?` does not, as `Topic` is not a
container.

Fixes #24808
Close #24812
This commit is contained in:
Sean Griffin 2016-05-02 16:36:17 -05:00
parent e0a9baa044
commit 98264a1343
2 changed files with 1 additions and 7 deletions

@ -1,6 +1,6 @@
module ActiveRecord
module Querying
delegate :find, :take, :take!, :first, :first!, :last, :last!, :exists?, :any?, :many?, :empty?, :none?, :one?, to: :all
delegate :find, :take, :take!, :first, :first!, :last, :last!, :exists?, :any?, :many?, :none?, :one?, to: :all
delegate :second, :second!, :third, :third!, :fourth, :fourth!, :fifth, :fifth!, :forty_two, :forty_two!, :third_to_last, :third_to_last!, :second_to_last, :second_to_last!, to: :all
delegate :first_or_create, :first_or_create!, :first_or_initialize, to: :all
delegate :find_or_create_by, :find_or_create_by!, :find_or_initialize_by, to: :all

@ -544,12 +544,6 @@ def test_subclass_merges_scopes_properly
assert_equal 1, SpecialComment.where(body: 'go crazy').created.count
end
def test_model_class_should_respond_to_empty
assert !Topic.empty?
Topic.delete_all
assert Topic.empty?
end
def test_model_class_should_respond_to_none
assert !Topic.none?
Topic.delete_all